I’ve managed to reproduce a bug with this plugin, WooCommerce Multi Currency and WP Super Cache.
We run a multi-currency website selling globally.
We use the Amount Left plugin to embed a shortcode into our theme’s “top bar”. This gives customers both the currency-specific and shipping-location-specific free shipping threshold.
For example, our UK free shipping threshold is £60
Our USA free shipping threshold is £150, converting to US$200 (for example)
Here are the steps to create the bug:
1. Clear WP Super Cache
2. On one UK located device, navigate to any page. The top bar will display “Free shipping £60+” (correct)
3. Using a USA located device (VPN), navigate to any page. The top bar will display “Free shipping $200+” (correct)
4. On the USA device, switch currency to GBP. The top bar will now display “Free shipping £150” (not £60+ as it’s still shipping to USA, this is still correct)
5. On the USA device, navigate to another page.
6. On the UK device, navigate to the same page. The top bar will read “Free shipping £150+”. This is incorrect from the UK devices perspective.
7. Repeat vice-versa with the UK device first navigating to a given page, then the USA device going after, the top bar will read Free shipping £60+ (incorrect from the USA devices perspective)
It’s quite clear that the whole page is being cached for a given currency (by design I imagine). In the interim I set the top bar to a hard coded “Free UK Shipping £60+” which is better than risking it serving something incorrect to a customer.
To counter this, we purchased the plugin to enable some of the AJAX options, hoping this would reload any wrong instance but this doesn’t appear to be having an effect.