# WP Multilang

**WP admin:** installed in `WP Admin → POS → Settings → Extensions`, and set per store in `WP Admin → POS → Stores`.

[WP Multilang](https://wordpress.org/plugins/wp-multilang/) keeps every translation of a product inside that one product, and lets you limit a product to some of your languages. The free **WCPOS WP Multilang** extension gives the POS one language to work in, so a product you limited to other languages stays out of it.

Cashiers have nothing to set up: the first section shows what changes for them. The rest of the page is for the store's administrator.

## What the cashier sees[​](#what-the-cashier-sees "Direkter Link zu What the cashier sees")

Product search, the product grid and a variable product's options show the products sold in the store's language:

* A product with **no language limit** shows in every store.
* A product **limited to some languages** shows only where the store's language is one of them.

Nothing changes in how a cashier sells: add to cart, take the payment, print the receipt as usual. See [Checkout](/de/getting-started/make-sale.md).

## Install the extension[​](#install "Direkter Link zu Install the extension")

Before you start

You need [WooCommerce](https://woocommerce.com/) and [WP Multilang](https://wordpress.org/plugins/wp-multilang/) active, with your languages set up in WP Multilang, and an administrator login to **WP Admin**. WordPress won't activate the extension until both are active.

An administrator installs it once, in **WP Admin**. The POS uses WP Multilang's **default language** unless you [choose a language for the store](#store-language).

### With WCPOS Pro[​](#install-pro "Direkter Link zu With WCPOS Pro")

1. Go to **POS → Settings → Extensions**.
2. Find **WCPOS WP Multilang** and press **Install**.
3. Press **Activate**.

See [Install an extension](/de/manage-store/add-ons.md#installing-an-extension) for updates and auto-updates.

After activating the extension:

* To give a store its own language, [choose its language](#store-language) first, then [check it works](#check).
* Otherwise, go straight to [Check it works](#check).

### With the free plugin[​](#install-free "Direkter Link zu With the free plugin")

The Extensions screen lists the extension, but its **Install** button needs Pro. Instead:

1. Download `wcpos-wp-multilang.zip` from the extension's [latest release](https://github.com/wcpos/wcpos-wp-multilang/releases/latest).
2. Go to **Plugins → Add Plugin** and press **Upload Plugin**.
3. Choose the file you downloaded and press **Install Now**.
4. Press **Activate Plugin**.

Then [check it works](#check). Without Pro there is one store, and it uses WP Multilang's default language.

### Check it works[​](#check "Direkter Link zu Check it works")

The POS keeps a copy of your products on each device, so clear it once to pick up the change.

#### In WP Admin: prepare two products[​](#check-prepare "Direkter Link zu In WP Admin: prepare two products")

Pick two in-stock products to test with: one sold in the store's language, and one that isn't. You set a product's languages in **WP Admin**, not in the POS. For each of the two products:

1. Open the product's edit screen in **WP Admin**.
2. In WP Multilang's **Languages** box, under **Show post only in:**, tick the languages the product is sold in. With none ticked, the product shows in every language, so tick at least one.
3. Save the product.

#### On each POS device: check the results[​](#check-device "Direkter Link zu On each POS device: check the results")

On each device that uses the POS:

1. Under the products, press and hold the sync button and choose **Clear and Refresh**. Wait for the products to download again.
2. Turn off any filter lit in the bar other than **In Stock**. In **Search products**, type the name of the product that includes the store's language. It shows.
3. Search for the other product. It doesn't show.

![The POS product panel after a search for one product: the search box, the In Stock filter lit, one product tile and the product count](/img/2.x/extensions/wp-multilang/en/tablet-light-regular--x1-1-check-it-works.png)1234

1. **Search products** — type a product's name.
2. **In Stock** — lit from the start unless **Show out-of-stock products** is on in [Display Settings](/de/sell/find-products/product-display.md#show-out-of-stock-products). While it's lit, out-of-stock products stay hidden. That's why both products need to be in stock. See [Stock status](/de/sell/find-products/search-products.md#stock-status).
3. **The product** — shows only if it is sold in the store's language.
4. **Product count** — how many products on this device match the search. Once the refresh is done, it counts only products sold in the store's language.

Pressing and holding the sync button opens its menu:

![The foot of the product panel with the sync button held down and its menu open on Sync and Clear and Refresh](/img/2.x/extensions/wp-multilang/en/tablet-light-regular--x1-2-sync-menu.png)123

1. **Sync button** () — press and hold it to open this menu. See [the panel's footer](/de/sell/find-products/product-display.md#footer).
2. **Sync** — the same as pressing the button. After a store's language changes, it doesn't remove products that are now hidden, so choose **Clear and Refresh**.
3. **Clear and Refresh** — clears this device's products and downloads the store's products again.

If the other product still shows, see [If something goes wrong](#goes-wrong).

## Choose a store's language[​](#store-language "Direkter Link zu Choose a store's language")

With WCPOS Pro, each [store](/de/manage-store/stores.md) can work in its own language: a French shop and an English shop on the same site each see the products sold in their language.

The Language page needs three things

WCPOS Pro, the **WCPOS WP Multilang** extension active, and WP Multilang active with at least one language. Without them, the store's menu has no **Language** page.

1. In **WP Admin**, go to **POS → Stores** and click the store's name.
2. In the store's menu, under **Extensions**, open **Language**. Not **Currency & language → Language**, which changes the words on the screen and receipts; see [below](#product-and-screen-language).
3. Under **Store language**, pick a language. The list shows every language set up in WP Multilang. **Default language** follows WP Multilang's default. The choice saves by itself.
4. Open the POS for this store and [check it works](#check).

Other stores keep their own language.

### Product language and screen language[​](#product-and-screen-language "Direkter Link zu Product language and screen language")

A store has two settings called **Language**, in two places in the store's menu:

* **Extensions → Language → Store language** chooses which products the POS shows.
* **Currency & language → Language** chooses the words on the POS screen and on receipts. See [Fill in the store's pages](/de/manage-store/stores/set-up-stores.md#store-pages).

Tipp

For a French shop, set both to French.

## If something goes wrong[​](#goes-wrong "Direkter Link zu If something goes wrong")

**A product limited to another language still shows.** Check that **WCPOS WP Multilang** is active in **Plugins**, then press and hold the sync button and choose **Clear and Refresh** on that device.

**A product is missing in one store.** Check in WP Multilang whether the product's languages include this store's language. If they don't, add it, then refresh the POS. If they do, see [When you can't find it](/de/sell/find-products.md#goes-wrong).

**WordPress won't activate the extension.** Activate WooCommerce and WP Multilang first.

**There is no Language page under Extensions in the store's menu.** The page needs WCPOS Pro, the extension active, and WP Multilang active with at least one language.

With WCPOS Pro

Every store chooses its own language. Without Pro there is one store, and it uses WP Multilang's default language.

For developers: filters and stored data

The extension works only on the product and variation requests the POS makes: it adds WP Multilang's `lang` query var and a `_languages` meta query to their product query. A product matches when it has no `_languages` meta, or when its `_languages` contains the language. Other REST clients are not affected. The language comes from the store the request names (`store_id`), then from WP Multilang's default.

* A store's choice is saved in the store's `_wcpos_wp_multilang_language` meta. An empty value means WP Multilang's default language. The stores API (`/wcpos/v1/stores`) returns the language in use as `language`: the store's choice, or the default language's code when the meta is empty.
* `wcpos_wp_multilang_resolved_language` changes the language used for one request.
* `wcpos_wp_multilang_default_language` changes the default language.
* `wcpos_wp_multilang_is_supported` switches the extension on or off.
* `wcpos_wp_multilang_minimum_version` sets the lowest WP Multilang version it runs with. There is none by default.
* For the 1.x app, the extension also answers its ID-list requests on `/wcpos/v1/products` and the variation routes (`posts_per_page=-1` with `fields=id`) with the same language filter. The 2.x app does not send them.

Source: [github.com/wcpos/wcpos-wp-multilang](https://github.com/wcpos/wcpos-wp-multilang).

## Related Documentation[​](#related-documentation "Direkter Link zu Related Documentation")

* [Extensions](/de/manage-store/add-ons.md)
* [WCPOS Polylang](/de/settings/languages/polylang.md) and [WCPOS WPML](/de/settings/languages/wpml.md), for the other translation plugins
* [Setting up stores](/de/manage-store/stores/set-up-stores.md)

[Setting up storesEach store's address, currency, language and staff](/de/manage-store/stores/set-up-stores.md)

[Display SettingsThe product panel's settings and its sync button](/de/sell/find-products/product-display.md)
