Background of the issue:
I am facing the same issue as described here: https://wpml.org/forums/topic/order-prices-change-on-status-change-in-alternative-currency-woocommerce-multilingual/. Orders process as expected, but if an order needs to be re-triggered (e.g., for a repeated API call to the warehouse system – WooCommerce status changes from 'Completed' back to 'In Progress'), the order prices lose their separators, which causes them to be manipulated. I have installed the most recent update of WooCommerce and Multicurrency. The default currency in WooCommerce is EUR, and the secondary currency is USD. Unfortunately, the suggested solution (matching the separators with those of WooCommerce's native format) is not an option for me. I tried that, and while it does solve the bug, it results in incorrect separators for my USD prices.
Symptoms:
Order prices lose their separators and are manipulated, resulting in significantly higher prices when the order status changes from 'Completed' back to 'In Progress'.
Questions:
How can I prevent order prices from losing their separators when the order status changes?
Is there an alternative solution to matching the separators with WooCommerce's native format that does not result in incorrect separators for USD prices?
I have escalated this issue to our developers. In the meantime, there is a workaround but I must warn that it has not been tested and while it resolves the issue on my test site, I don't know what other issues it could cause, so please proceed with a full back up and caution.
We disable our logic by going to : wp-content/plugins/woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php and comment-out the line:
After I did this on my test site, the issue was resolved. The other option is to change the USD decimal separator to a comman. This makes the price look a bit funny on the frontend, but it wouldn't have unknown consequences like editing the code.
I will update you here once our developers have a more pernament solution.
Hello Lauren, i solved it for my case now with this Hardcode:
In the unit mentioned: wp-content/plugins/woocommerce-multilingual/inc/currencies/class-wcml-multi-currency-prices.php , manipulate the line with an is_admin switch:
Thanks for the update! We will be including a permanent resolution in a future release. Glad to know the workaroudn resolves it temporarily. I will let you know once we have a confirmed release available.
Is there an update aviable, yet?
Another question: I am struggeling to identify which changelog this issue actually belongs to - wpml or wcml, actually?
Other than the previous workaround, we do not have a permanent fix yet. The workaround earlier provided is what is suggested, and this is still escalated to our developers. Ultimately it's up to our developers to determine priority and schedule, and I will update here once I have more information.
The issue is still in queue for a future release and the workaround is the most up to date solution.
Manage Cookie Consent
We use cookies to optimize our website and services. Your consent allows us to process data such as browsing behavior. Not consenting may affect some features.
Functional
Always active
Required for our website to operate and communicate correctly.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
We use these to analyze the statistics of our site. Collected information is completely anonymous.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
These cookies track your browsing to provide ads relevant to you.