Use WooPayments if you want first-party payment processing with built-in currency selection. Use a dedicated currency-switcher extension when you need advanced geolocation, zone-based pricing, per-product prices, or controls that sit outside the payment layer. In either case, multi-currency changes much more than the symbol beside a price: exchange rates, taxes, shipping, coupons, caching, payment authorization, analytics and refunds all need testing.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
This guide shows the exact WooPayments setup, explains when an extension is the better fit, and gives a launch checklist for a store that sells to customers in more than one currency.
As an Amazon Associate I earn from qualifying purchases.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
What WooCommerce multi-currency actually does
Multi-currency allows shoppers to view prices and, when the payment setup supports it, pay in a currency they select or that the store detects from their location. WooPayments describes its feature this way: “WooPayments’ multi-currency feature lets you to show product prices to customers in various currencies.”
That does not automatically mean the merchant receives a separate payout in every currency a shopper uses. Customer-facing currency and payout currency are separate decisions. WooPayments documents support for over 100 currencies, but the exact currencies available and payout eligibility depend on the merchant’s country and the current WooPayments rules.
#1 Best Overall
A currency switcher can change the displayed catalog price while the payment gateway still settles in another currency. A true multi-currency checkout must therefore be verified at the payment, tax and accounting layers rather than judged only by the storefront symbol.
Choose the right implementation path
| Implementation | Best for | Important controls | Checks before launch |
|---|---|---|---|
| WooPayments multi-currency | A first-party payment and currency workflow with a relatively simple setup | Enabled currencies, automatic or manual rates, geolocation, rendering mode, switcher block or widget | Payout currencies, conversion fees, caching, refund accounting and gateway behavior |
| Currency Switcher for WooCommerce | Advanced front-end controls, geolocation, zone pricing or per-product prices | Widget, menu or shortcode; API or fixed rates; geolocation; MaxMind; zone and product pricing | Feature dependencies, conflicts and payment-gateway compatibility |
| Multicurrency Switcher and Converter | A dedicated converter with location rules and plugin-level controls | Plugin settings, automatic rates, geolocation and IP-detection options | API limits, provider terms, checkout, tax and shipping behavior |
WooCommerce advises merchants to establish why they need multiple currencies and to perform due diligence on exchange rates and additional fees. Start with the smallest feature set that answers the business requirement. A catalog that only needs visitors to estimate prices may not need complex zone pricing; a store that charges local prices, supports different shipping rules and processes local-currency refunds may outgrow a display-only converter.
Choose WooPayments when
- You already use WooPayments and want the payment provider to manage the currency choice in one place.
- You need a visible switcher but do not require separate prices for every product and region.
- You can accept the available payout and conversion rules for your merchant country.
Choose a dedicated extension when
- You need per-product or per-zone prices rather than one converted base price.
- You need more control over IP geolocation, menus, shortcodes or storefront placement.
- Your payment gateway, pricing logic or shipping rules require a currency layer independent of payment processing.
How to enable multi-currency in WooPayments
Complete this procedure in a staging site first if your store has custom checkout, tax or shipping code. Menu names below are the current WooPayments labels.
- Open the payment settings. In WordPress, go to Payments > Settings.
- Open Advanced settings. Find the Multi-Currency option and enable it.
- Add the currencies. Select every currency customers may use. Do not enable currencies merely because a symbol exists; include only those you can display, charge, reconcile and refund correctly.
- Manage each currency. Open Manage beside an enabled currency to configure its rate and presentation.
- Set the exchange-rate source. Keep Fetch rates automatically enabled when you want regularly retrieved rates. Choose a manual rate when you require a fixed value for a contract, a controlled promotion or a pricing policy that should not move with the market.
- Select price rendering. Choose Optimized for speed to convert on the server before the page loads, or Optimized for caching to convert in the browser after the page loads.
- Place the switcher. Add the currency switcher block or widget to a header, footer, sidebar or another prominent location. Stores using the Storefront theme can enable the Storefront switcher.
- Decide whether to detect location. You can enable automatic local-currency switching. Keep a manual switcher available because geolocation is not authoritative and can be wrong when a visitor uses a VPN or otherwise masks their location.
- Save and test. Open the storefront in each enabled currency and run the complete test matrix described below before making the setting live.
Automatic versus manual rates
Automatic rates reduce maintenance, but retrieval timing, rounding and provider data can affect the displayed total. A displayed value may not match a third-party historical listing to the minute. A manually defined rate remains fixed until you change it, so document who owns the rate, when it was approved and how often it will be reviewed.
Neither mode removes the need to check the amount captured by the gateway. The rate shown in a product page, the rate used at checkout and the rate used by a card issuer or bank can differ because they are separate calculations.
Speed rendering versus cache rendering
| Setting | How conversion occurs | Advantages | Trade-off |
|---|---|---|---|
| Optimized for speed | The server converts the price before the page is sent | The shopper sees the selected currency immediately and there is no conversion placeholder | Full-page caching is harder because cached HTML can contain a currency-specific price |
| Optimized for caching | The browser converts the price after the page loads | Better compatibility with aggressively cached pages and content-delivery layers | The shopper may briefly see a placeholder or the base value while conversion runs |
Choose server conversion when immediate price accuracy is more important than maximum cache reuse. Choose browser conversion when your store relies on full-page caching and you can accept a short rendering delay. Whichever option you select, test cached and uncached sessions, logged-in and logged-out users, mobile and desktop browsers, and a first visit with no saved currency cookie.
Recommended Free Tools
Design the currency selector and geolocation behavior
Give shoppers a reliable override
Automatic location detection is convenient, not proof of residence. VPNs, corporate networks, mobile carriers and shared IP ranges can produce the wrong country. A visible selector lets a customer correct the choice before adding products or paying. Place it where customers can find it on product, cart and checkout pages; a footer-only control is easy to miss on a long catalog.
Persist the selection consistently. A shopper who chooses a currency on a product page should see the same currency in the cart, checkout, order confirmation and account area. Check that language or country selectors do not silently overwrite it.
Using MaxMind with a currency-switcher extension
The Currency Switcher extension can use WooCommerce MaxMind geolocation. Its documentation requires the WooCommerce default customer location to be set to Geolocate and a valid MaxMind license key entered in the WooCommerce integration settings. If either prerequisite is missing, location rules may fall back to the store default or fail without an obvious front-end error.
After configuring geolocation, test an IP from every target region and a deliberately masked connection. Confirm that a manually selected currency wins when the customer overrides detection, and verify what happens when the visitor clears cookies or changes network.
Set prices, rounding and display rules
Converted prices versus localized prices
A converted price starts with the store’s base price and applies an exchange rate. This is easy to maintain but can produce awkward values after conversion. A localized or zone price is an explicit amount for a currency or region. It gives you control over market positioning, tax-inclusive presentation and psychologically rounded prices, but every price must be maintained when the catalog changes.
Decide whether rounding occurs per line item or on the order total, then verify that the displayed subtotal, discount, tax and grand total use the same policy. A one-cent difference between line-level and order-level rounding can affect payment authorization and accounting exports.
Manual rates and scheduled review
For a manual rate, record the base currency, quote currency, numeric value, effective date and approver in your internal change log. Review it whenever your commercial policy or payment costs change. For automatic rates, check the retrieval status and fallback behavior; an API limit or temporary provider failure should not silently create zero prices or revert to an unexpected currency.
Taxes, shipping and coupons need currency-specific tests
Changing the currency can alter the monetary inputs used by tax and shipping rules. A tax display that looks correct on a product page may still be wrong at checkout if the tax engine receives the base currency. Shipping methods may have fixed amounts, thresholds or zone restrictions that must be recalculated after conversion.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Rank #2
Run these cases in every enabled currency:
- A taxable and a tax-exempt product.
- Prices entered tax-inclusive and tax-exclusive, where your configuration supports both.
- Each shipping zone, method and free-shipping threshold.
- Percentage coupons and fixed-amount coupons.
- Minimum- and maximum-spend rules.
- Mixed carts containing products with different tax classes or shipping classes.
- Orders where the billing and shipping countries differ.
Fixed-amount coupons deserve special attention. A coupon created as a fixed value in the base currency may need conversion, a separate localized value or a restriction to one currency. Confirm the customer-facing discount, the order record and the amount sent to the payment gateway.
Payment capture, payouts, fees and refunds
Customer currency is not payout currency
Enabling multiple customer currencies does not promise a separate bank payout in each one. Check which currencies your merchant account can hold or receive, how unsupported currencies are converted, and which balance is used for refunds. WooPayments’ available payout currencies depend on the merchant country and current rules.
Conversion fees can have several sources
WooCommerce warns that conversion fees may be charged by the payment processor or the customer’s bank. Card issuers can also add a fee when the transaction uses a non-standard card currency. WooPayments charges a currency-conversion fee when the payment currency differs from the currency of a bank account on file. Show prices clearly, but do not promise that the customer’s final bank statement will equal the storefront conversion to the cent.
Refunds can change the merchant-side amount
WooPayments states that the customer receives the exact amount and currency originally paid. The amount deducted from the merchant balance can differ because the exchange rate may change between the original payment and the refund. Test full refunds, partial refunds and refunds issued after a rate change. Reconcile the order currency, gateway transaction currency, customer receipt and merchant balance entry.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →How to use a dedicated currency-switcher extension
The exact labels vary by extension, but the implementation sequence is consistent:
- Define the base currency. Keep one authoritative store currency for catalog data, accounting and any integrations that require it.
- Install and activate the extension. Check its documented dependencies before enabling it on a production checkout.
- Choose currencies and rate mode. Configure an API-fed rate or a fixed rate, then set update frequency, rounding and fallback behavior where available.
- Configure the selector. Add the widget, menu item or shortcode to the locations customers use.
- Configure geolocation. If the extension supports MaxMind or another IP provider, complete its license and WooCommerce location prerequisites.
- Set zone or product prices only if needed. Explicit prices increase control but also increase catalog maintenance and the chance of an incomplete price.
- Confirm gateway compatibility. Some gateways accept only the shop currency or a limited set of billing currencies. Run a real authorization in test mode for each supported currency.
- Review conflicts. Check interactions among shop currency, zone pricing, billing currency, shipping currency and coupon features. Disable overlapping currency logic in other plugins.
A dedicated extension is not automatically a payment solution. If it changes only the display, the checkout may still charge the base currency. Read the extension’s gateway documentation and inspect the order record to confirm what was actually authorized.
Full pre-launch test plan
Create a test order for each currency and record the expected values before you begin. Use a staging gateway or the gateway’s test mode; do not rely on a changed symbol as evidence that payment worked.
- Catalog. Open a simple product, variable product, subscription or other product type you sell. Check regular price, sale price, variation selection and stock messaging.
- Cart. Add multiple quantities and products. Confirm line subtotals, discounts, tax, shipping and the grand total.
- Checkout. Change billing and shipping countries, switch currencies, reload the page and verify that the selection persists.
- Authorization and capture. Confirm the gateway receives the intended currency and amount, then complete capture or the equivalent test action.
- Taxes. Compare the storefront display with the tax amount stored on the order and the amount passed to any tax service.
- Shipping. Test each zone, method and threshold, including free shipping and a mixed cart.
- Coupons. Test percentage and fixed-amount discounts, minimum spend and maximum spend rules.
- Messages and emails. Inspect the order received page, customer email, administrator email, invoice, packing slip and any fulfillment feed for currency symbols and decimal formatting.
- Integrations. Check product feeds, analytics, advertising conversions, accounting exports, subscriptions and webhooks. Confirm that they expect the order currency rather than assuming the base currency.
- Refunds. Issue a full and partial refund and reconcile customer-facing and merchant-facing amounts.
- Cache behavior. Repeat the test from a fresh browser and a cached page. Confirm that one shopper’s currency is never served to another shopper.
Common failure modes and fixes
The price changes, but checkout returns to the base currency
This usually means the switcher is display-only, the gateway supports only the shop currency, or a second plugin is overwriting the selected currency. Inspect the order and gateway test request, then disable duplicate currency logic and verify gateway support.
Free tools Windows power users keep installed
One-click scans. No signup required.
Prices are wrong only on cached pages
Server-rendered conversion can be stored in a page cache under the wrong currency. Purge the cache, exclude currency-sensitive pages or use browser-side conversion. Test anonymous visitors because logged-in tests may bypass the problematic cache layer.
A location is detected incorrectly
Retain a manual selector, check the default customer-location setting, and test VPN and mobile connections. With MaxMind, confirm the valid license key and the Geolocate setting required by the extension.
Totals differ by a cent
Compare the configured decimal precision, line-level rounding, order-level rounding, tax rounding and gateway amount. Apply one documented rounding policy and ensure every integration uses it.
Refunds do not match the original merchant balance
The customer should receive the original paid amount and currency, but exchange-rate movement can change the merchant-side deduction. Reconcile the original transaction, refund transaction and conversion entry instead of editing the customer refund to force a balance match.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsA currency or payout option is missing
Availability can depend on the merchant country, account eligibility and current WooPayments rules. Check the payment account settings before promising that currency to customers.
Operational checklist after launch
- Keep the manual currency selector visible even when geolocation is enabled.
- Monitor automatic-rate retrieval and document every manual-rate change.
- Review conversion fees charged by the processor and banks when pricing or margin assumptions change.
- Retest checkout after updates to WooCommerce, WooPayments, the currency extension, tax logic, shipping rules or caching.
- Reconcile orders by both order currency and settlement currency.
- Review refund behavior at least once after a significant exchange-rate movement.
- Check analytics and feeds for duplicated or missing revenue when currencies differ.
Recommended decision
For most stores already processing payments through WooPayments, enable its Multi-Currency setting, add only the currencies you can support, choose the rendering mode that matches your caching architecture and keep a visible override switcher. Select a dedicated extension instead when your requirements include zone-specific or per-product prices, advanced geolocation controls or currency behavior independent of the payment provider. Whichever route you choose, consider the setup complete only after payment, tax, shipping, discount, email, integration and refund tests pass in every enabled currency.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




