Cart page doesn't recalculate totals on currency switch (Checkout works correctly)
The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday. If you have problems with registration ask help on contact us page pleaseIf you not got email within 24~36 business hours, firstly check your spam box, and if no any email from the support there - back to the forum and read answer here. DO NOT ANSWER ON EMAILS [noreply@pluginus.net] FROM THE FORUM!! Emails are just for your info, all answers should be published only here.
The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday.
Support notice: Our support team will be on vacation from August 8 to September 3, so response times may be delayed and replies may be irregular.
Quote from skh.umamahfaiza9@gmail.com on August 21, 2026, 06:05Plugin version: FOX - Currency Switcher Professional for WooCommerce, v1.5.1
Environment: WordPress + WooCommerce 11.0.1, Astra theme, LiteSpeed Cache (issue persists even with LiteSpeed Cache fully deactivated — confirmed not a caching conflict)Relevant FOX settings:
- Is multiple allowed: Yes
- Currency storage: Transient
- "I am using cache plugin on my site": Yes, with Custom price format set to
__PRICE__ (__CODE__)- Checkout by GeoIP rules: Off
- Base currency: INR, additional currency: USD
Steps to reproduce:
- Add a product to cart (site loads in base currency, INR)
- Go to Cart page (
/cart/)- Switch currency to USD using the currency switcher, directly on the Cart page
- Cart totals remain displayed in INR — no browser console errors
- Proceeding to Checkout page: currency does correctly show and calculate as USD
Additional testing done:
- Confirmed with LiteSpeed Cache fully deactivated — same result
- Confirmed no other plugins interfering (CartFlows and Cart Abandonment Recovery both deactivated during testing)
- No JS console errors present when switching currency on Cart page
Expected behavior: Cart page totals should update to USD immediately when currency is switched there, matching what Checkout correctly displays.
Question: Is this a known issue with cart-page AJAX price redraw when "I am using cache plugin on my site" is enabled? Is there a specific hook or setting we're missing to force cart total recalculation on currency switch?
Plugin version: FOX - Currency Switcher Professional for WooCommerce, v1.5.1
Environment: WordPress + WooCommerce 11.0.1, Astra theme, LiteSpeed Cache (issue persists even with LiteSpeed Cache fully deactivated — confirmed not a caching conflict)
Relevant FOX settings:
- Is multiple allowed: Yes
- Currency storage: Transient
- "I am using cache plugin on my site": Yes, with Custom price format set to
__PRICE__ (__CODE__) - Checkout by GeoIP rules: Off
- Base currency: INR, additional currency: USD
Steps to reproduce:
- Add a product to cart (site loads in base currency, INR)
- Go to Cart page (
/cart/) - Switch currency to USD using the currency switcher, directly on the Cart page
- Cart totals remain displayed in INR — no browser console errors
- Proceeding to Checkout page: currency does correctly show and calculate as USD
Additional testing done:
- Confirmed with LiteSpeed Cache fully deactivated — same result
- Confirmed no other plugins interfering (CartFlows and Cart Abandonment Recovery both deactivated during testing)
- No JS console errors present when switching currency on Cart page
Expected behavior: Cart page totals should update to USD immediately when currency is switched there, matching what Checkout correctly displays.
Question: Is this a known issue with cart-page AJAX price redraw when"I am using cache plugin on my site" is enabled? Is there a specific hook or setting we're missing to force cart total recalculation on currency switch?
Quote from Alex Dev on August 24, 2026, 11:12Hello
Thank you for the detailed report, it contains exactly the information needed and the diagnosis is clear.
This is not a cart page redraw problem and it is not a conflict with LiteSpeed Cache. It is a known issue in the combination you are running: Currency storage set to Transient together with the option "I am using cache plugin on my site" enabled. That pair activates an internal mode where the selected currency is stored under a per browser key. In your version the key is delivered only with AJAX requests, so a normal page load of /cart/ does not carry it and the cart totals are calculated on the server in the base currency. The Checkout page works because WooCommerce refreshes the order review by AJAX right after the page loads, and that request does carry the key. So it is one and the same cause, the cart is simply rendered synchronously while checkout corrects itself afterwards.
One note about your test with LiteSpeed Cache deactivated. That test cannot rule this out, because the trigger is the FOX option itself, not the cache plugin. As long as "I am using cache plugin on my site" is enabled, the mode stays active even with no caching plugin installed at all.
If you want to confirm it in ten seconds: switch the currency to USD, then open https://yoursite.com/cart/?currency=usd manually in the address bar. The cart will render in USD. Please look at the raw page source with Ctrl+U rather than the browser inspector, since the inspector shows the DOM after our scripts have already patched it.
Solution you can apply right now, no code needed:
Go to FOX settings, Options tab, and change Currency storage from Transient to FOX Session. Save. The mode described above is only active for Transient storage, so switching the storage type removes the problem completely and the cart will recalculate immediately on currency switch.
The only trade off is that FOX Session sets a session cookie, so pages visited after a currency switch will normally bypass your full page cache for that visitor. On most shops this is acceptable, since a visitor who switched currency needs a personalized page anyway.
You can leave the option "I am using cache plugin on my site" enabled together with FOX Session, and your custom price format PRICE (CODE) can stay as it is.
The issue itself is already fixed on our side. The fix makes the selected currency travel with normal page loads and with WooCommerce Blocks and Store API requests, so the cart, the checkout totals and the switcher stay in one currency. It will be included in the update that goes out at the beginning of September. After you update you can move Currency storage back to Transient if you prefer the caching behaviour it gives you.
Please let me know if switching the storage type solves it on your side.
Hello
Thank you for the detailed report, it contains exactly the information needed and the diagnosis is clear.
This is not a cart page redraw problem and it is not a conflict with LiteSpeed Cache. It is a known issue in the combination you are running: Currency storage set to Transient together with the option"I am using cache plugin on my site" enabled. That pair activates an internal mode where the selected currency is stored under a per browser key. In your version the key is delivered only with AJAX requests, so a normal page load of /cart/ does not carry it and the cart totals are calculated on the server in the base currency. The Checkout page works because WooCommerce refreshes the order review by AJAX right after the page loads, and that request does carry the key. So it is one and the same cause, the cart is simply rendered synchronously while checkout corrects itself afterwards.
One note about your test with LiteSpeed Cache deactivated. That test cannot rule this out, because the trigger is the FOX option itself, not the cache plugin. As long as"I am using cache plugin on my site" is enabled, the mode stays active even with no caching plugin installed at all.
If you want to confirm it in ten seconds: switch the currency to USD, then open https://yoursite.com/cart/?currency=usd manually in the address bar. The cart will render in USD. Please look at the raw page source with Ctrl+U rather than the browser inspector, since the inspector shows the DOM after our scripts have already patched it.
Solution you can apply right now, no code needed:
Go to FOX settings, Options tab, and change Currency storage from Transient to FOX Session. Save. The mode described above is only active for Transient storage, so switching the storage type removes the problem completely and the cart will recalculate immediately on currency switch.
The only trade off is that FOX Session sets a session cookie, so pages visited after a currency switch will normally bypass your full page cache for that visitor. On most shops this is acceptable, since a visitor who switched currency needs a personalized page anyway.
You can leave the option"I am using cache plugin on my site" enabled together with FOX Session, and your custom price format PRICE (CODE) can stay as it is.
The issue itself is already fixed on our side. The fix makes the selected currency travel with normal page loads and with WooCommerce Blocks and Store API requests, so the cart, the checkout totals and the switcher stay in one currency. It will be included in the update that goes out at the beginning of September. After you update you can move Currency storage back to Transient if you prefer the caching behaviour it gives you.
Please let me know if switching the storage type solves it on your side.
Quote from skh.umamahfaiza9@gmail.com on August 24, 2026, 20:15Hey Alex,
Thank you for your response. The solution you have provided worked!
Its working now with FOX settings, Options tab, and change Currency storage from Transient to FOX Session
Thank you again!
Hey Alex,
Thank you for your response. The solution you have provided worked!
Its working now with FOX settings, Options tab, and change Currency storage from Transient to FOX Session
Thank you again!
