When the currency selection seems to be "lost" on page reload, the cause is usually a misconfiguration, or a glitch caused by a caching system. You can find more details about both cases below.
TABLE OF CONTENTS
- 1. The "force currency selection by customer country" is enabled
- 2. A caching system, or plugin, is serving incorrect content
- 3. Another element on the site is replacing the currency set by the Currency Switcher
1. The "force currency selection by customer country" is enabled
Such option forces the currency based on customer's billing country, overriding anything selecting manually. The manual selection of a currency and the selection of currency by country are mutually exclusive, they cannot be used together. Here's an example showing such option enabled:

If the above option is set to Billing or Shipping country, simply change it to Disabled, then save the settings. That will fix the issue.
2. A caching system, or plugin, is serving incorrect content
Caching systems must be configured to support dynamic caching, in order to prevent them from interfering with the currency selection features. Plugins like WP Rocket or Comet Cache can support dynamic caching, while others, such as W3 Total Cache or Fastest Cache, do not. If you use a caching system, or plugin, that does not support dynamic caching, then you will have the following options:
- Replace the caching system with one that supports dynamic caching. This is the recommended solution, as it allows the site to work without workarounds.
- Use a workaround to prevent caching from serving the wrong content. Our Cache Handler plugin is designed to circumvent the limitations of static caching systems.
- Disable caching for shop pages (i.e. shop/* and product/*).
2.1 More information about dynamic caching
The following article explains how to implement dynamic caching: How to add dynamic caching to your site. It also explains how to install and configure our Cache Handler plugin, for caching systems that cannot support dynamic caching.
3. Another element on the site is replacing the currency set by the Currency Switcher
The active currency is part of the WooCommerce core, and other plugins, or custom code, can change its value by using a filter. When this happens, the selection made by the Currency Switcher can be replaced by the one made by other elements, causing an unwanted behaviour.
Important note about Woo Payments - 20 August 2026
One of the elements that has been determined to cause this kind of issue is version 11.0 of the Woo Payments plugin. That plugin includes some basic multi-currency features, which must be disabled to prevent conflicts with the Currency Switcher. Woo Payments works fine up until version 10.9, but in version 11.0 they introduced an issue that causes some of the multi-currency features to stay enabled when they shouldn't, sometimes as soon as the plugin is activated and before it has been configured.
We reported the issue to the Woo Payments developer on the 20th of August 2026. While they work on it, the recommended solutions are the following:
- If the Woo Payments plugin is not needed, you can remove it from the site.
- If the Woo Payments plugin is required, roll it back to an earlier version, such as 10.9. That version works fine with the Currency Switcher, as long as the multi-currency option is disabled.
- As a last resort, use a different plugin, such as the WooCommerce Stripe Payment Gateway. That plugin has been working out of the box since its first release.