WOOCS (FOX Currency Switcher) + Product Add-Ons Ultimate – wrong add-on prices & cart totals
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.
Quote from varadi.balazs on January 20, 2026, 01:10Hi Support Team,
I’m having serious multicurrency calculation issues between FOX – Currency Switcher Professional for WooCommerce (WOOCS) and WooCommerce Product Add-Ons Ultimate PRO (PluginRepublic).
Setup:
WooCommerce store (Elementor, no cache/CDN, no optimization plugins)
Only one currency switcher is used: FOX/WOOCS
Product add-ons are created with WooCommerce Product Add-Ons Ultimate PRO
Customer can switch between EUR (default), USD, GBP, HUF
The problem
Prices are correct in EUR, but when using other currencies the add-on option prices and totals become inconsistent and sometimes look like they are being converted multiple times (double conversion / wrong base currency handling).
Example product:
Split-finger Tab Calfskin – L size
Base price (EUR): 19
Option “ABS Spacer”: +9 EUR
Expected total: 28 EUR
Cart total: 28 EUR ✅ (Correct)
But in other currencies:
USD:
Base price shows correctly: 22.06 USD
Add-on option stays “+9” (NOT converted)
Expected total should be: 22.06 + (9 EUR converted) ≈ 32.5 USD
Actual cart result becomes: 36.06 USD ❌
GBP:
Base price shows correctly: 16.48 GBP
Add-on option stays “+9” (NOT converted)
Cart subtotal becomes incorrect ❌
HUF:
Base price shows correctly: 7,316 Ft
Add-on option stays “+9 Ft” (obviously wrong)
Cart sometimes shows extremely large numbers (looks like double conversion) ❌
Additional symptoms
Elementor mini cart subtotal does not update correctly after currency switch (product line prices can be OK, but subtotal stays in the wrong value/currency).
If I enable FOX “show prices in other currencies” feature, sometimes EUR shows €0.00 while other currencies show correct values (so EUR becomes NULL/zero unexpectedly).
What I already tested
Removed all custom MU plugins/snippets completely (clean test)
The issue still happens, so it’s not caused by custom code.
Currency switching itself works for normal product prices, but Product Add-On option pricing + cart totals are wrong.
I also tried the compatibility snippet from your documentation for:
“WooCommerce Product Add-Ons Ultimate by pluginrepublic.com”
but it caused EUR add-on values to become 0 or did not fix the cart totals.
What I need from you
Please provide the correct and up-to-date compatibility fix for WOOCS + Product Add-Ons Ultimate PRO that ensures:
Add-on option prices are converted properly to the selected currency (USD/GBP/HUF),
The cart totals/subtotals are calculated correctly (no double conversion),
Elementor mini-cart subtotal updates correctly after switching currency,
The default currency (EUR) never becomes zero/null for add-on option values.
If this requires changes in specific plugin hooks/filters (instead of editing core files), please provide the recommended implementation.
Thank you in advance — I really need a stable solution because the current behavior breaks checkout totals in multiple currencies.
Hi Support Team,
I’m having serious multicurrency calculation issues between FOX – Currency Switcher Professional for WooCommerce (WOOCS) and WooCommerce Product Add-Ons Ultimate PRO (PluginRepublic).
Setup:
WooCommerce store (Elementor, no cache/CDN, no optimization plugins)
Only one currency switcher is used: FOX/WOOCS
Product add-ons are created with WooCommerce Product Add-Ons Ultimate PRO
Customer can switch between EUR (default), USD, GBP, HUF
The problem
Prices are correct in EUR, but when using other currencies the add-on option prices and totals become inconsistent and sometimes look like they are being converted multiple times (double conversion / wrong base currency handling).
Example product:
Split-finger Tab Calfskin – L size
Base price (EUR): 19
Option “ABS Spacer”: +9 EUR
Expected total: 28 EUR
Cart total: 28 EUR ✅ (Correct)
But in other currencies:
USD:
Base price shows correctly: 22.06 USD
Add-on option stays “+9” (NOT converted)
Expected total should be: 22.06 + (9 EUR converted) ≈ 32.5 USD
Actual cart result becomes: 36.06 USD ❌
GBP:
Base price shows correctly: 16.48 GBP
Add-on option stays “+9” (NOT converted)
Cart subtotal becomes incorrect ❌
HUF:
Base price shows correctly: 7,316 Ft
Add-on option stays “+9 Ft” (obviously wrong)
Cart sometimes shows extremely large numbers (looks like double conversion) ❌
Additional symptoms
Elementor mini cart subtotal does not update correctly after currency switch (product line prices can be OK, but subtotal stays in the wrong value/currency).
If I enable FOX “show prices in other currencies” feature, sometimes EUR shows €0.00 while other currencies show correct values (so EUR becomes NULL/zero unexpectedly).
What I already tested
Removed all custom MU plugins/snippets completely (clean test)
The issue still happens, so it’s not caused by custom code.
Currency switching itself works for normal product prices, but Product Add-On option pricing + cart totals are wrong.
I also tried the compatibility snippet from your documentation for:
“WooCommerce Product Add-Ons Ultimate by pluginrepublic.com”
but it caused EUR add-on values to become 0 or did not fix the cart totals.
What I need from you
Please provide the correct and up-to-date compatibility fix for WOOCS + Product Add-Ons Ultimate PRO that ensures:
Add-on option prices are converted properly to the selected currency (USD/GBP/HUF),
The cart totals/subtotals are calculated correctly (no double conversion),
Elementor mini-cart subtotal updates correctly after switching currency,
The default currency (EUR) never becomes zero/null for add-on option values.
If this requires changes in specific plugin hooks/filters (instead of editing core files), please provide the recommended implementation.
Thank you in advance — I really need a stable solution because the current behavior breaks checkout totals in multiple currencies.
Quote from Alex Dovlatov on January 20, 2026, 14:50Hello Varadi
I can suggest you this way: https://currency-switcher.com/woocs-labs/ - create please stage site, clone of described site, using https://wordpress.org/plugins/duplicator/, provide wp-admin and ftp access to that stage site in the secret area of this ticket, and write us here that you did it. The task will be reviewed within 2 or 3 weeks without warranty of success
https://share.pluginus.net/image/i20230222134241.png
https://share.pluginus.net/image/i20230222134615.png
https://share.pluginus.net/image/i20230222134511.pngAlso will be good, to avoid additional questions, short video where will be demonstrated issues on the stage site
Welcome!
Hello Varadi
I can suggest you this way: https://currency-switcher.com/woocs-labs/ - create please stage site, clone of described site, using https://wordpress.org/plugins/duplicator/, provide wp-admin and ftp access to that stage site in the secret area of this ticket, and write us here that you did it. The task will be reviewed within 2 or 3 weeks without warranty of success
https://share.pluginus.net/image/i20230222134241.png
https://share.pluginus.net/image/i20230222134615.png
https://share.pluginus.net/image/i20230222134511.png
Also will be good, to avoid additional questions, short video where will be demonstrated issues on the stage site
Welcome!
Quote from varadi.balazs on January 29, 2026, 02:07Hi Alex!
I added the info
Hi Alex!
I added the info
Quote from Alex Dovlatov on January 29, 2026, 20:24Hello Varadi
Thank you! Ftp works fine, but wp-admin redirect me to 'not_found' page, pleace re-check it and give me know here please ...
Hello Varadi
Thank you! Ftp works fine, but wp-admin redirect me to 'not_found' page, pleace re-check it and give me know here please ...
Quote from varadi.balazs on January 30, 2026, 20:02Hi Alex!
Sorry - fixed.
Hi Alex!
Sorry - fixed.
Quote from Alex Dovlatov on February 2, 2026, 13:28Hello Varadi
Thank you, task registered!
Hello Varadi
Thank you, task registered!
Quote from Alex Dovlatov on February 9, 2026, 21:39Hello Varadi
We investigated the code of the plugin file: plugins/product-extras-for-woocommerce/inc/functions-cart.php and played with it code. Looks like adaptation with WOOCS is inside there already. So after experiments with it, when products normally add on single page when basic currency is enabled, but with bad recalculation if any another currency switched, special code was created and placed into file functions.php of the current wp theme:
/** * Force base currency during cart item data processing */ add_filter('woocommerce_add_cart_item_data', 'woocs_pewc_force_base_before', 1, 4); add_filter('woocommerce_add_cart_item_data', 'woocs_pewc_restore_after', 999, 4); function woocs_pewc_force_base_before($cart_item_data, $product_id, $variation_id, $quantity) { if (!class_exists('WOOCS')) { return $cart_item_data; } global $WOOCS; if ($WOOCS->current_currency != $WOOCS->default_currency) { $GLOBALS['woocs_pewc_saved_currency'] = $WOOCS->current_currency; $WOOCS->set_currency($WOOCS->default_currency); } return $cart_item_data; } function woocs_pewc_restore_after($cart_item_data, $product_id, $variation_id, $quantity) { if (!class_exists('WOOCS')) { return $cart_item_data; } global $WOOCS; //back currency if (!empty($GLOBALS['woocs_pewc_saved_currency'])) { $WOOCS->set_currency($GLOBALS['woocs_pewc_saved_currency']); unset($GLOBALS['woocs_pewc_saved_currency']); } return $cart_item_data; }Now products adding to the cart works fine! I checked it with product https://staging.vlbbtab.com/product/split-finger-tab-calfskin-l-size/
Check it. Also its important and you did it to place next code into file functions.php:
function pewc_get_multicurrency_price($price, $item, $product) { // Compatibility with WooCommerce multilingual $price = apply_filters('wcml_raw_price_amount', $price); if (class_exists('WOOCS')) { global $WOOCS; if ($WOOCS->is_multiple_allowed) { $price = $WOOCS->woocs_exchange_value(floatval($price)); } } return $price; } add_filter('pewc_filter_field_price', 'pewc_get_multicurrency_price', 10, 3); add_filter('pewc_filter_option_price', 'pewc_get_multicurrency_price', 10, 3);
Test it please and write me feedback how its works now ...
p.s. in FOX options I changed "Currency storage" -> "FOX Session"
Hello Varadi
We investigated the code of the plugin file: plugins/product-extras-for-woocommerce/inc/functions-cart.php and played with it code. Looks like adaptation with WOOCS is inside there already. So after experiments with it, when products normally add on single page when basic currency is enabled, but with bad recalculation if any another currency switched, special code was created and placed into file functions.php of the current wp theme:
/**
* Force base currency during cart item data processing
*/
add_filter('woocommerce_add_cart_item_data', 'woocs_pewc_force_base_before', 1, 4);
add_filter('woocommerce_add_cart_item_data', 'woocs_pewc_restore_after', 999, 4);
function woocs_pewc_force_base_before($cart_item_data, $product_id, $variation_id, $quantity) {
if (!class_exists('WOOCS')) {
return $cart_item_data;
}
global $WOOCS;
if ($WOOCS->current_currency != $WOOCS->default_currency) {
$GLOBALS['woocs_pewc_saved_currency'] = $WOOCS->current_currency;
$WOOCS->set_currency($WOOCS->default_currency);
}
return $cart_item_data;
}
function woocs_pewc_restore_after($cart_item_data, $product_id, $variation_id, $quantity) {
if (!class_exists('WOOCS')) {
return $cart_item_data;
}
global $WOOCS;
//back currency
if (!empty($GLOBALS['woocs_pewc_saved_currency'])) {
$WOOCS->set_currency($GLOBALS['woocs_pewc_saved_currency']);
unset($GLOBALS['woocs_pewc_saved_currency']);
}
return $cart_item_data;
}
Now products adding to the cart works fine! I checked it with product https://staging.vlbbtab.com/product/split-finger-tab-calfskin-l-size/
Check it. Also its important and you did it to place next code into file functions.php:
function pewc_get_multicurrency_price($price, $item, $product) {
// Compatibility with WooCommerce multilingual
$price = apply_filters('wcml_raw_price_amount', $price);
if (class_exists('WOOCS')) {
global $WOOCS;
if ($WOOCS->is_multiple_allowed) {
$price = $WOOCS->woocs_exchange_value(floatval($price));
}
}
return $price;
}
add_filter('pewc_filter_field_price', 'pewc_get_multicurrency_price', 10, 3);
add_filter('pewc_filter_option_price', 'pewc_get_multicurrency_price', 10, 3);
Test it please and write me feedback how its works now ...
p.s. in FOX options I changed"Currency storage" ->"FOX Session"
Quote from varadi.balazs on February 10, 2026, 12:22Hello Alex!
Just to clarify: I did not apply/modify anything on my side.
I tested on the same staging environment you’ve been working on (the one you also edited), and the issue is still reproducible there — so this is not caused by missing implementation on my end.
Current status on your staging:
If all add-on options are 0-priced, then the currency totals look correct.
Example (USD): product page shows ~22.5, cart also shows ~22.5 ✅
As soon as an option becomes paid, the product page and cart totals diverge.
Repro steps (simple + consistent):
Open the product you tested (Split-finger Tab Calfskin – L size).
Switch currency to USD.
Change Thread color to a paid option (eg. purple).
Before adding to cart, the product page shows the correct expected total:
Expected: 25.16 USD
Displayed on product page: 25.16 USD ✅
Add to cart → the cart total is different:
Cart shows: 24.75 USD ❌
GBP shows the same type of problem (EUR remains OK).
So right now it looks like the front-end display can be correct, but the cart calculation still uses a different base/conversion path when a non-zero add-on price is involved.
Hello Alex!
Just to clarify: I did not apply/modify anything on my side.
I tested on the same staging environment you’ve been working on (the one you also edited), and the issue is still reproducible there — so this is not caused by missing implementation on my end.
Current status on your staging:
If all add-on options are 0-priced, then the currency totals look correct.
Example (USD): product page shows ~22.5, cart also shows ~22.5 ✅
As soon as an option becomes paid, the product page and cart totals diverge.
Repro steps (simple + consistent):
Open the product you tested (Split-finger Tab Calfskin – L size).
Switch currency to USD.
Change Thread color to a paid option (eg. purple).
Before adding to cart, the product page shows the correct expected total:
Expected: 25.16 USD
Displayed on product page: 25.16 USD ✅
Add to cart → the cart total is different:
Cart shows: 24.75 USD ❌
GBP shows the same type of problem (EUR remains OK).
So right now it looks like the front-end display can be correct, but the cart calculation still uses a different base/conversion path when a non-zero add-on price is involved.
Quote from Alex Dovlatov on February 10, 2026, 16:38Hello Varadi
Ok, I will re-open the task, and will bakc here later as it will be done
Thank you for your cooperation ...
Hello Varadi
Ok, I will re-open the task, and will bakc here later as it will be done
Thank you for your cooperation ...
Quote from Alex Dovlatov on February 20, 2026, 18:33Hello Varadi
So, looks like works, here is the link: https://staging.vlbbtab.com/product/split-finger-tab-calfskin-l-size-longer-face/
To make experiment clear was deactivated all plugins exept nessesary and wp theme was set to basic "storefront"
from file /wp-content/plugins/product-extras-for-woocommerce/inc/functions-cart.php was removed all the code related to WOOCS plugin and added code only into function pewc_add_cart_item_data:
if (class_exists('WOOCS')) { global $WOOCS; if ($WOOCS->is_multiple_allowed && $WOOCS->current_currency != $WOOCS->default_currency) { $currencies = $WOOCS->get_currencies(); $rate = $currencies[$WOOCS->current_currency]['rate']; $product_price = $product_price / $rate; // back to EUR base } }
Into file functions.php was added next code:
// Convert option prices to current currency ONLY for product page display // Does NOT run during AJAX cart add requests function pewc_woocs_convert_option_price($price, $item, $product) { if (!class_exists('WOOCS')) return $price; // Only convert for direct page rendering, not during AJAX (cart add) if (wp_doing_ajax()) return $price; // Only convert on single product pages if (!is_product()) return $price; global $WOOCS; if (!$WOOCS->is_multiple_allowed) return $price; if ($WOOCS->current_currency == $WOOCS->default_currency) return $price; $currencies = $WOOCS->get_currencies(); $rate = $currencies[$WOOCS->current_currency]['rate']; return $price * $rate; } add_filter('pewc_filter_option_price', 'pewc_woocs_convert_option_price', 10, 3); add_filter('pewc_filter_field_price', 'pewc_woocs_convert_option_price', 10, 3);
Now adding of products into the cart is stable: https://drive.google.com/file/d/1YTj2dFZbeBqBy0fTA6bpSeQRNyYclRBE/view?usp=sharing
Test it please on production ...
Hello Varadi
So, looks like works, here is the link: https://staging.vlbbtab.com/product/split-finger-tab-calfskin-l-size-longer-face/
To make experiment clear was deactivated all plugins exept nessesary and wp theme was set to basic"storefront"

from file /wp-content/plugins/product-extras-for-woocommerce/inc/functions-cart.php was removed all the code related to WOOCS plugin and added code only into function pewc_add_cart_item_data:
if (class_exists('WOOCS')) {
global $WOOCS;
if ($WOOCS->is_multiple_allowed && $WOOCS->current_currency != $WOOCS->default_currency) {
$currencies = $WOOCS->get_currencies();
$rate = $currencies[$WOOCS->current_currency]['rate'];
$product_price = $product_price / $rate; // back to EUR base
}
}
Into file functions.php was added next code:
// Convert option prices to current currency ONLY for product page display
// Does NOT run during AJAX cart add requests
function pewc_woocs_convert_option_price($price, $item, $product) {
if (!class_exists('WOOCS')) return $price;
// Only convert for direct page rendering, not during AJAX (cart add)
if (wp_doing_ajax()) return $price;
// Only convert on single product pages
if (!is_product()) return $price;
global $WOOCS;
if (!$WOOCS->is_multiple_allowed) return $price;
if ($WOOCS->current_currency == $WOOCS->default_currency) return $price;
$currencies = $WOOCS->get_currencies();
$rate = $currencies[$WOOCS->current_currency]['rate'];
return $price * $rate;
}
add_filter('pewc_filter_option_price', 'pewc_woocs_convert_option_price', 10, 3);
add_filter('pewc_filter_field_price', 'pewc_woocs_convert_option_price', 10, 3);
Now adding of products into the cart is stable: https://drive.google.com/file/d/1YTj2dFZbeBqBy0fTA6bpSeQRNyYclRBE/view?usp=sharing
Test it please on production ...

