The Currency Switcher calculates the prices of products and shipping very early, to ensure that any other plugin that might interact with them can have the value in the correct currency.
1. Probable causes
When selecting a currency results in the currency symbol changing, but the prices remaining the same, the most common causes are usually the following:
1.1 An incorrect configuration of the exchange rates
If an exchange rate is set to 1, it causes the conversion from the base currency to be performed as 1:1. For example, 100 EUR would be converted to 100 USD. In this case, setting the correct exchange rate can be sufficient to fix the issue.
1.2. Another element on the site is interfering with the price calculation
Some element on the site could be replacing the result of the price conversion with the original price. That is:
- The customer adds a product to the cart, with a price of 100 EUR.
- The customer changes the currency to USD.
- The Currency Switcher calculates the new price as 114.66 USD.
- Some other plugin, or custom code replaces the cart item price with the original value of "100".
- The cart item price becomes 100 USD.
We are aware that some plugins that handle discounts, custom prices or "deals" can do that. The WooCommerce Payments plugin is also known for causing that kind of issues (see conversation on their public support forum: https://wordpress.org/support/topic/does-wc-payments-implement-some-currency-conversion-logic/).
2. How to identify the cause of the issue
The first step to solve the issue would be to identify its cause. A simple way to do this is to go by exclusion:
- Create a staging copy of the site. This is to avoid affecting the live site during the troubleshooting.
- On the staging copy, disable all the plugins (keep WooCommerce and the Aelia plugins).
- Switch to a basic theme (e.g. Storefront), to exclude any custom code that might be causing the glitch.
- Try to reproduce the issue.
- If the issue doesn't occur, switch back to your original theme and try again.
- If the issue still doesn't occur, enable one of the plugins you disabled at #2 and repeat the test.
- Repeat #5 until the issue occurs again. This will tell you which element(s) contribute to it.
Once you identify the cause of the issue, the next step would be to inform the author of the element that causes the conflict, so that they can review the logic and make it compatible with our solution. You can also forward the information to us, and we can communicate with the 3rd party authors to help them prepare a solution.