Docs

Order emails and refunds in another currency

3 min readUpdated November 4, 2026

When a shopper pays in another currency, everything that follows the order should stay in that currency: the confirmation email, later emails and any refund. WC Currency Switch makes WooCommerce’s order emails use the order’s own currency and number format, and keeps refunds and reports correct. For example, a shopper in Kuwait who paid 3.250 KWD gets an email that says KD 3.250, with the three decimals the Kuwaiti dinar uses, not KD 3.25 or a price in your store currency.

How it works#

An email is not sent from the shopper’s browser, so the plugin cannot use the shopper’s currency cookie when it is written. Instead, while WooCommerce writes the order details in an email, the plugin switches the currency to the order’s own currency and then switches it back.

So the amounts in the email use:

  • the order currency’s symbol, including a custom symbol you set on the Pricing tab;
  • the order currency’s number of decimals;
  • the order currency’s decimal separator, thousand separator and symbol position from the Pricing tab.

This works with WooCommerce’s own email templates and with email designer plugins that use WooCommerce’s standard email hooks.

Emails never contain the hidden price data that the plugin adds to shop pages for page caching, so the email shows only the one price.

Emails sent from the admin#

Some emails are sent while you work in the WordPress admin, for example the completed order email when you mark an order as completed on the order screen. In that case:

  • The currency symbol and the number of decimals follow the order’s currency.
  • The decimal separator, thousand separator and symbol position follow your WooCommerce settings (WooCommerce > Settings > General), not the order currency’s settings on the Pricing tab.

For most currencies this makes no visible difference. If a currency uses different separators from your store, for example a comma as the decimal separator, check one of these emails to see how it looks.

Refunds#

A refund is made in the order’s currency, as WooCommerce always does. On a KWD order, you enter the refund amount in KWD, and the refund is in KWD.

On the order screen, and when you send the refund, the plugin uses the order currency’s number of decimals. That means you can refund an amount like 10.789 KWD. Without this, WooCommerce would round it to 10.79 and could reject it as more than the order total.

In WooCommerce Analytics, a refund is converted to your store currency with the exchange rate saved on its order, not with today’s rate. A full refund therefore cancels the order’s revenue exactly.

Examples#

Order email. Your store sells in USD. A shopper pays in KWD and the order total is 3.250 KWD. The order confirmation email shows KD 3.250.

Partial refund. The order is 10.000 KWD and the saved rate is 1 USD = 0.30870 KWD. You refund 2.500 KWD.

  1. Enter 2.500 in the refund amount on the order. It is in KWD, the order’s currency.
  2. The refund is 2.500 KWD, in the currency the shopper paid in.
  3. In Analytics, the refund counts as 2.500 / 0.30870 = 8.10 USD.

Full refund. You refund the whole 10.000 KWD order. In Analytics, the order counts as 32.39 USD and the refund as -32.39 USD, so the net is 0.

Good to know#

  • Emails follow the order’s currency, not the currency the shopper is browsing in now. A shopper who later switches the shop to EUR still gets KWD emails for a KWD order.
  • If Analytics shows a refund with an old or wrong rate, correct the order’s rate in Currency Info and run WCCS: Sync analytics to base currency under WooCommerce > Status > Tools.
  • The currency and exchange rate saved on each order
  • WooCommerce Analytics in your store currency
  • Number format and currency symbols