← Back to blog
Our WordPress plugins
September 3, 2026

WPML Multicurrency Price Not Switching: How to Find and Fix the Cause

WPML Multicurrency Price Not Switching: How to Find and Fix the Cause

The currency selector says EUR. Your product page still says USD. Then the cart, checkout, or both stubbornly keep the original price—and suddenly a small configuration detail looks like a revenue problem.

If you are searching for wpml multicurrency price not switching, the cause is rarely as simple as a broken switcher. A missing exchange rate can produce the same symptom as an aggressive cache, stale AJAX cart fragments, a custom product-pricing rule, theme code, or a plugin that quietly overrides WooCommerce pricing. The frustrating part is that each can look identical from the customer’s side.

Guessing is expensive. The fastest fix comes from isolating where the price stops changing and testing the right layer in the right order—before changing settings, clearing caches blindly, or touching production code.

First, Confirm Where the Price Fails to Switch

Verify WPML Multicurrency and WooCommerce Pricing Settings

Test in a private browser window with cache bypassed

A currency bug can be real—or it can be yesterday’s session following you around. Open an incognito or private window, visit the site as a logged-out customer, and switch currencies there first. Clear your browser cache and, if you control the site, purge page, object, and CDN caches before retesting. Saved currency cookies, WooCommerce customer sessions, and cached HTML can all make a working setting look broken. Test the same product twice: once after a fresh visit and once after a hard refresh.

Check whether the symbol, number, or neither changes

The visible result is a useful clue. If neither the currency symbol nor the amount changes, investigate the currency selector, session cookie, or language/currency mapping. If the symbol changes from € to $ but the number remains 100, look at exchange rates, rounding, or fixed prices configured per currency. If product pages update correctly but the mini-cart, cart, or checkout stays stale, the likely issue is AJAX fragments or a caching conflict—not the conversion rule itself. This distinction saves hours when diagnosing a wpml multicurrency price not switching report.

Record the affected pages and session conditions

Write down the active language, selected currency, product type, device, browser, and logged-in status. Note exactly where the failure appears: product page, category listing, mini-cart, cart, checkout, or only before a reload. Also record whether refreshing fixes it. A reproducible test case turns a vague complaint into evidence that you—or support—can act on.

Verify WPML Multicurrency and WooCommerce Pricing Settings

A currency switcher can change its symbol instantly while the underlying amount stays exactly the same. That is why a wpml multicurrency price not switching issue is usually a configuration problem, not a display bug.

Make sure the target currency is enabled and has an active exchange rate

In WooCommerce Multilingual & Multicurrency, confirm that the target currency is enabled rather than merely added to the list. Then inspect its exchange rate: it must be populated, sensible, and current. If you use automatic rates, verify the selected exchange-rate service can update successfully; a failed update may leave an old value in place. For manual rates, check the decimal placement carefully. A rate of 1 instead of 0.92 will make a euro price look suspiciously unchanged from a dollar price.

Check fixed prices and currency-specific product values

Fixed secondary-currency prices override automatic conversion by design. Open the affected product and review the currency-specific regular and sale prices. For variable products, inspect every variation too; one variation can retain an outdated fixed value while others convert normally. Also check scheduled sale fields. A forgotten sale price or a scheduled discount in the target currency can be the value WooCommerce correctly chooses to show.

Review rounding rules, price adjustments, and payment restrictions

Finally, examine rounding and price-adjustment settings. Aggressive rounding, percentage markups, or minimum and maximum price rules can reduce visible differences, especially on low-cost items. Test with a product priced at $100 rather than $5 to make the calculation obvious. Check payment gateways as well: some gateways accept only particular currencies and may force checkout back to the store default, making the currency change appear not to persist.

Rule Out Caching, AJAX, and Theme Conflicts

Exclude currency-dependent pages and cookies from full-page cache

A currency switch can work perfectly on the server and still display the wrong price. Full-page caching is the usual culprit: it saves HTML generated in one currency, then serves that same version to the next visitor. Exclude cart, checkout, and My Account pages from page cache, and make sure the cache varies by the WooCommerce Multicurrency currency cookie or session. Test in a private browser window after purging every cache layer, including CDN cache.

Refresh mini-cart, cart fragments, and dynamic price blocks

When the product-page price changes but the header mini-cart does not, the issue is usually AJAX rather than WPML’s exchange-rate setup. Cart fragments, side carts, quick-view popups, and custom price widgets can retain markup created before the currency changed. First test with standard WooCommerce product and cart templates. If those update correctly, inspect custom JavaScript and confirm it refreshes after the currency cookie changes.

Test with a default theme and temporarily disable related plugins

For a stubborn wpml multicurrency price not switching problem, isolate the conflict instead of guessing. Make a staging backup, briefly activate a default WordPress theme, then test again. If prices update, the theme or its WooCommerce overrides need attention. If not, reactivate the theme and disable optimization, price-rule, checkout, subscription, and product-addon plugins one at a time. The first change that restores correct prices identifies where to investigate.

Check Custom Code and Product Types That Override Prices

A currency switcher can work perfectly while the displayed number remains wrong. The usual culprit is a second pricing layer that runs after conversion—or bypasses WooCommerce pricing entirely.

Look for custom WooCommerce price filters

Search the child theme, custom plugins, and code-snippet tools for filters such as woocommerce_product_get_price, woocommerce_product_get_regular_price, and woocommerce_get_price_html. A callback may hard-code a value or recalculate it after WPML converts the price. Disable suspect snippets individually, clear caches, and retest. If the wpml multicurrency price not switching problem disappears, adjust the callback’s priority or make its calculation currency-aware.

Test variable products, bundles, subscriptions, and dynamic pricing separately

Complex product types rarely follow one pricing path. Variations, bundles, subscriptions, deposits, role-based prices, and quantity discounts may each use extension-specific calculations or cached values. Test a simple product first, then each affected type independently. If only one fails, check that extension’s WPML compatibility guidance and multicurrency configuration rather than changing global exchange-rate settings.

Confirm page-builder and custom-template price widgets use WooCommerce data

Static text and widgets reading the raw _price meta value will not reliably switch currencies. Custom templates should obtain the product through WooCommerce and render its calculated price, while page builders should use supported WooCommerce product-price elements. Replace manually entered amounts or direct metadata queries, then test shop, product, quick-view, and archive templates separately.

Use a Clean Escalation Path if the Problem Persists

Update the WooCommerce, WPML, and WooCommerce Multilingual stack

When a wpml multicurrency price not switching issue survives the basic checks, stop changing settings on the live site. Random fixes can erase the evidence support needs. First, clone the site to staging and confirm each component meets current compatibility requirements. Update WordPress, WooCommerce, WPML, WooCommerce Multilingual & Multicurrency, the active theme, and relevant payment, pricing, cache, and product-add-on extensions. Then retest the same product and currency combination. A version mismatch may affect only variable products or only prices served from cached pages.

Prepare a support-ready reproduction report

A concise report can turn several rounds of support replies into one useful investigation. Include:

  • Site URL or secure staging access
  • The currencies involved and the expected versus displayed price
  • Affected product IDs, including whether they are simple, variable, or subscription products
  • Screenshots and any browser console errors
  • Active cache, optimization, and CDN tools
  • Exact steps that reproduce the problem reliably

Also say whether the wrong price appears on product pages, in the cart, at checkout, or everywhere. That distinction matters: cart-only failures often point to session or caching behavior rather than exchange-rate configuration.

Translate WPML content without adding avoidable credit costs

For sites already using WPML that also need post and page translation, LATW AI Translator for WPML is a separate add-on that works inside WPML’s workflow. It sends content directly from WordPress to supported AI or translation-provider APIs using your own API key, helping avoid avoidable credit costs. It does not replace WPML and does not manage multicurrency pricing; WPML remains the prerequisite and handles the multilingual infrastructure.

Turn a Vague Currency Bug Into a Reproducible Fix

When WPML multicurrency price not switching affects a store, resist the urge to change several settings at once. First, pinpoint where the failure occurs: is the selected currency wrong, is the displayed price stale, or is the cart using a different value? Then verify the multicurrency setup and the product’s currency-specific prices, clear every relevant cache, and check whether AJAX price refreshes are being blocked. Only after those basics are confirmed should you isolate custom snippets, theme overrides, and complex product or pricing extensions.

The fastest path to a dependable answer is a small test case that fails in the same way every time. Reproduce the issue with one product, one currency switch, and as few active variables as possible; that evidence makes debugging far more decisive and gives WPML support something they can act on. A problem you can reproduce is a problem you can resolve.

Our WordPress plugins
Translate your WordPress site with AI
Pick the LATW plugin that fits how your site is built - a complete standalone multilingual system, or drop-in AI translation for the setup you already run.
LATW for WPML Add-on for WPML
LATW for WPML
Translate posts, pages, custom fields, builder content and strings 1400× cheaper than WPML's Automatic Translation - billed to your own API key.
Works with everything WPML supports
Gutenberg, WooCommerce, Elementor, Bricks
Yoast & Rank Math SEO fields
Read more →
LATW Multilingual Standalone
LATW Multilingual
Language switcher, clean URLs and full multilingual SEO in one package - no WPML or Polylang required. Pro adds AI translation on six engines.
Standalone - no WPML or Polylang needed
Switcher, clean URLs & full hreflang SEO
Free bilingual site; Pro adds AI translation
Read more →
← Back to blog