跳到主内容
版本: 1.x

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 + fields requests 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

1

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.

2

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.

3

(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:

FilterPurpose
wcpos_polylang_resolved_languageOverride the language used for a given request. Receives the resolved slug and the WP_REST_Request.
wcpos_polylang_default_languageOverride the fallback language when no per-store value is set.
wcpos_polylang_is_supportedForce the plugin on or off regardless of Polylang detection.
wcpos_polylang_minimum_versionRequire a minimum Polylang version (default: no version gate).

Requirements

WooCommerce: WooCommerce installed and activated
Polylang: Polylang (free or Pro) with at least one language configured
WCPOS: Free version works; per-store language selection requires WCPOS Pro