My payment gateway only support one currency and I want show customer their local currency
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 Nand on September 5, 2026, 16:24My payment gateway only support one currency and I want show customer their local currency so after filling address detail and clicking place order button I want currecy to change to default currecy which payment gateway accept and currently I facing problem which is that checkout box showing correct customer local currency but once they click place order and redirected to payment gateway page It show same amount in their default currency without changing it rate. For example - If one customer came from United States so their currecy show is USD and amount show in USD but my payment gateway doesn't accept USD but INR so they take same USD amount like 30 dollar to 30 ruppee and try to take payment and I want that it show acctual current rate amount there 2835 approx something, So how can I able to do it please help me.
My payment gateway only support one currency and I want show customer their local currency so after filling address detail and clicking place order button I want currecy to change to default currecy which payment gateway accept and currently I facing problem which is that checkout box showing correct customer local currency but once they click place order and redirected to payment gateway page It show same amount in their default currency without changing it rate. For example - If one customer came from United States so their currecy show is USD and amount show in USD but my payment gateway doesn't accept USD but INR so they take same USD amount like 30 dollar to 30 ruppee and try to take payment and I want that it show acctual current rate amount there 2835 approx something, So how can I able to do it please help me.
Quote from Alex Dev on September 7, 2026, 14:08Hello Nand
First, an important point about how WooCommerce itself works. An order can only have one currency. There is no way to display USD to the customer and then hand a different currency to the payment gateway at the moment the order is placed - whatever currency is active when the order is created is the currency written into the order, and that is exactly what the gateway receives. This is WooCommerce core behaviour, not a limitation of our plugin. FOX also does not convert the amount sent to a gateway; the "Payments rules" feature only hides gateways for certain currencies, it does not recalculate anything.
That is why your gateway receives 30 and treats it as 30 INR instead of the correct converted amount.
There is a clean solution for your case: keep the whole shop in the visitor's local currency, and switch to your base currency on the checkout page, so the order is created in INR and the gateway gets the correct converted amount. Products, categories and the cart still show USD or any other currency, and the totals are recalculated at the current rate when the customer reaches checkout.
Add this to your child theme functions.php, or better to a small custom plugin so a theme update cannot remove it. Replace INR with your shop base currency code if it is different.
add_action( 'template_redirect', function () { // Force the shop base currency on checkout so the payment gateway // receives an amount in the only currency it accepts. if ( ! is_checkout() && ! is_checkout_pay_page() ) { return; } global $WOOCS; if ( empty( $WOOCS ) ) { return; } $WOOCS->set_currency( 'INR' ); if ( WC()->cart ) { WC()->cart->calculate_totals(); } }, 1 );Two things you should know before you use it.
The customer will see the currency change to INR when they open the checkout page, not after they press Place order. We recommend it this way on purpose. Showing 30 USD and then charging in rupees would surprise the customer at the bank statement stage and leads to disputes and chargebacks. Seeing the INR amount at the payment step is the safer behaviour, and the amount is the correct converted one.
After the order is placed the visitor stays in INR until they switch back with the currency switcher. This is a side effect of forcing the currency and it is expected.
One clarification before you use the snippet, it depends on your shop base currency.
If your WooCommerce base currency is already INR, you do not need the snippet at all. Just go to the FOX settings, Advanced tab, and set "Is multiple allowed" to No. In that mode other currencies are used for display only, and the currency is reset to INR when the customer reaches the checkout, so the order and the payment are always processed in INR.
If your base currency is something else and INR is a secondary currency, then the setting will not help and you should use the snippet above.
Note that the setting route works reliably on the classic checkout. If you use the WooCommerce checkout block, use the snippet instead.
Hello Nand
First, an important point about how WooCommerce itself works. An order can only have one currency. There is no way to display USD to the customer and then hand a different currency to the payment gateway at the moment the order is placed - whatever currency is active when the order is created is the currency written into the order, and that is exactly what the gateway receives. This is WooCommerce core behaviour, not a limitation of our plugin. FOX also does not convert the amount sent to a gateway; the"Payments rules" feature only hides gateways for certain currencies, it does not recalculate anything.
That is why your gateway receives 30 and treats it as 30 INR instead of the correct converted amount.
There is a clean solution for your case: keep the whole shop in the visitor's local currency, and switch to your base currency on the checkout page, so the order is created in INR and the gateway gets the correct converted amount. Products, categories and the cart still show USD or any other currency, and the totals are recalculated at the current rate when the customer reaches checkout.
Add this to your child theme functions.php, or better to a small custom plugin so a theme update cannot remove it. Replace INR with your shop base currency code if it is different.
add_action( 'template_redirect', function () {
// Force the shop base currency on checkout so the payment gateway
// receives an amount in the only currency it accepts.
if ( ! is_checkout() && ! is_checkout_pay_page() ) {
return;
}
global $WOOCS;
if ( empty( $WOOCS ) ) {
return;
}
$WOOCS->set_currency( 'INR' );
if ( WC()->cart ) {
WC()->cart->calculate_totals();
}
}, 1 );Two things you should know before you use it.
The customer will see the currency change to INR when they open the checkout page, not after they press Place order. We recommend it this way on purpose. Showing 30 USD and then charging in rupees would surprise the customer at the bank statement stage and leads to disputes and chargebacks. Seeing the INR amount at the payment step is the safer behaviour, and the amount is the correct converted one.
After the order is placed the visitor stays in INR until they switch back with the currency switcher. This is a side effect of forcing the currency and it is expected.
One clarification before you use the snippet, it depends on your shop base currency.
If your WooCommerce base currency is already INR, you do not need the snippet at all. Just go to the FOX settings, Advanced tab, and set"Is multiple allowed" to No. In that mode other currencies are used for display only, and the currency is reset to INR when the customer reaches the checkout, so the order and the payment are always processed in INR.
If your base currency is something else and INR is a secondary currency, then the setting will not help and you should use the snippet above.
Note that the setting route works reliably on the classic checkout. If you use the WooCommerce checkout block, use the snippet instead.
