WCPOS Polylang
Adds Polylang awareness to WCPOS so the POS only shows products for a single language — no duplicated translations in product search, the catalog grid, or cashier workflows. WCPOS Pro stores can pin a per-store language; free installs fall back to the Polylang default language.
What It Does
- Filters WCPOS product and variation REST queries by language.
- Intercepts WCPOS fast-sync routes (the lightweight
posts_per_page=-1+fieldsrequests the POS uses to refresh its local index) so translated duplicates never reach the client. - On free installs, applies the Polylang default language.
- On Pro installs, each store can choose its own language from a new Language section in the store editor.
- Respects WCPOS POS-only product visibility when building the fast-sync payload.
The integration no-ops cleanly when Polylang is not active — you can install the plugin ahead of enabling Polylang without errors.
Installation
Install Polylang
Install Polylang (or Polylang Pro) and configure your site languages as normal. Make sure at least one language is set as the default.
Install WCPOS Polylang
Install from the WCPOS extensions directory at WP Admin > POS > Settings > Extensions, or download the latest release from the GitHub releases page and upload via Plugins > Add New > Upload Plugin.
(Pro) Set a per-store language
If you run multiple stores on WCPOS Pro, go to POS > Stores, edit a store, and pick its language from the Language sidebar section. Leave it at Default to use your Polylang default language.
Per-Store Language (Pro)
On WCPOS Pro, the plugin adds a Language section to the store editor sidebar. Each store can be pinned to a single Polylang language slug — products served to that store are filtered to that language only. Stores left on Default use the Polylang default language.
The per-store value is saved against the store post as _wcpos_polylang_language meta and is exposed via the WCPOS Pro stores REST API (/wcpos/v1/stores), so it round-trips through the POS like any other store setting.
Compatibility Notes
- POS-only products: when POS-only mode is enabled in WCPOS settings, online-only product IDs are excluded from the fast-sync payload so they do not leak into the POS.
- Free installs: there is no UI for changing the language per store — the plugin uses Polylang's default language. If you need per-store languages, upgrade to WCPOS Pro.
- Plugin unavailable: if Polylang is deactivated, the plugin silently does nothing. It will not throw errors or block the POS.
Developer Hooks
For advanced use, the plugin exposes a few filters:
| Filter | Purpose |
|---|---|
wcpos_polylang_resolved_language | Override the language used for a given request. Receives the resolved slug and the WP_REST_Request. |
wcpos_polylang_default_language | Override the fallback language when no per-store value is set. |
wcpos_polylang_is_supported | Force the plugin on or off regardless of Polylang detection. |
wcpos_polylang_minimum_version | Require a minimum Polylang version (default: no version gate). |