Docs

WPML and WooCommerce Multilingual

4 min readUpdated November 4, 2026

WPML translates your site into other languages, and WooCommerce Multilingual (WCML) is its WooCommerce add-on, which has its own multi-currency feature. WC Currency Switch works with both. Who handles prices depends on one thing: whether WooCommerce Multilingual’s multi-currency mode is on. For example, a store in English and Arabic can let WPML handle the languages and WC Currency Switch handle the currencies, so an Arabic-speaking shopper in Kuwait sees KWD. Or, if you already run WCML’s multi-currency, WC Currency Switch can be the switcher on top of it.

How it works#

Your setup Who handles languages Who handles currencies and prices
WPML only, or WPML with WCML and its multi-currency mode off WPML WC Currency Switch
WPML with WCML and its multi-currency mode on WPML WooCommerce Multilingual. WC Currency Switch provides the switcher.

To see which setup the plugin detected, go to WooCommerce > Currency Switch > Integrations and look at the Multi-language group. The card for your setup shows a note that it is active.

WPML on its own#

WPML translates your site and WC Currency Switch handles currency, side by side, with no setup. Geo detection, Location Rules, the switcher, pricing rules, page caching and checkout options all work as described in the rest of these docs. Translated cart and checkout pages are recognised, so checkout options such as Settle orders in base currency work on every language.

Currency by language is not available in this setup. The Language → Currency Rules on the Location Rules tab only work with Polylang and TranslatePress. With WPML, show the right currency through geo detection, Location Rules and the switcher, or turn on WooCommerce Multilingual’s multi-currency mode and set currencies per language there.

WPML with WooCommerce Multilingual’s multi-currency mode#

When WCML’s multi-currency mode is on, WooCommerce Multilingual owns the store currency and product prices. WC Currency Switch steps back and acts as the switcher:

  • The plugin stops changing WooCommerce’s currency and stops converting product prices. WCML does both.
  • The switcher shows the currency WCML has chosen for the visitor.
  • When a shopper picks a currency in the switcher, the plugin tells WCML to switch, then reloads the page. Instant switching (beta) is not used in this mode.
  • When WCML changes the currency by itself, for example after a language change, the plugin updates its own currency cookie to match.

Set exchange rates, prices and currency by language in WooCommerce Multilingual’s own multi-currency settings. See the WPML documentation for those settings.

Set it up with WCML multi-currency#

  1. In WooCommerce Multilingual, turn on multi-currency mode and add your currencies.
  2. Go to WooCommerce > Currency Switch > Currencies and enable the same currencies.
  3. Click Save Changes.
  4. Add the switcher to your site as usual, for example with the [wccs_switcher] shortcode or on the Nav Menu tab.
  5. Open your shop, pick a currency in the switcher and check that the page reloads with prices in that currency.

Examples#

WPML only. Your store is in English and Arabic and sells in USD, with KWD enabled. A visitor in Kuwait opens the Arabic shop. Geo detection picks KWD, and prices show in KWD on both the English and Arabic pages.

WPML with WCML multi-currency. WCML is set to show EUR on French pages. A visitor opens a French page, WCML picks EUR, and the switcher shows EUR. The visitor picks GBP in the switcher, WCML switches to GBP, and the page reloads in GBP.

Good to know#

  • With WCML multi-currency on, a currency must be enabled in both plugins. The switcher only offers the currencies enabled on the Currencies tab, and the plugin only shows WCML’s currency if it is enabled there too.
  • Pricing rules on the Pricing tab, such as conversion fees, rounding and fixed exchange rates, apply to the prices WC Currency Switch works out. With WCML multi-currency on, set product prices and rates in WCML instead.
  • Currency by language (Polylang and TranslatePress)
  • Adding the currency switcher
  • How first-visit currency detection works
  • Reload vs Instant switching