A customer sees €24 on your menu, reaches checkout, and suddenly owes $27. Nothing necessarily went wrong with the arithmetic—but the store has made payment feel less trustworthy at the worst possible moment.
A WooCommerce currency switcher should do more than swap symbols. The useful setup connects the price customers see, the currency your gateway charges, and the records your team reconciles afterward. Here’s how to get those pieces working together without creating a second accounting job.
How WooCommerce currencies work before you add a switcher
WooCommerce has one base store currency. Multi-currency functionality adds another layer, and that layer can handle browsing, checkout, or both. Before installing anything, separate these four terms.
- Store currency: the base currency used to enter ordinary product prices and configure monetary settings.
- Display currency: the currency customers see while browsing. It might be an estimate rather than a currency they can pay in.
- Checkout currency: the currency submitted to the payment gateway for the transaction.
- Payout currency: the currency your processor sends to your bank account after any applicable conversion and deductions.
For example, a restaurant might maintain prices in euros, let a visitor browse and pay in US dollars, and receive its payout in euros. Alternatively, the restaurant could show approximate dollar prices but charge everyone in euros. Both arrangements can work, provided the checkout explains what happens.
Find the default currency under WooCommerce → Settings → General → Currency options. This area also controls currency position, separators, and decimal display. Changing the currency dropdown is not a migration tool: a product entered as 20 does not automatically become its equivalent value in another currency.
The same warning applies to changing a symbol through code or a formatting plugin. Replacing “€” with “$” changes presentation, not purchasing power. You need an exchange-rate calculation or deliberately maintained currency-specific prices.
A display-only switcher may convert catalog prices, then return customers to the store currency at checkout. That’s not automatically a defect; it may be the tool’s intended design. Label estimates clearly and show the actual charge currency before the customer commits.
Also distinguish the checkout currency from the customer’s card-account currency. Your store can submit a charge in dollars, but the customer’s card issuer may still apply its own conversion or cross-border charges.
Choose a multi-currency setup that works with your payment gateway
Start with the gateway, not the appearance of the dropdown. A switcher can display dozens of currencies while your payment processor accepts only some of them for your account or a particular payment method.
For stores already using WooPayments, its built-in multi-currency functionality provides a gateway-connected route. Eligibility depends on the merchant’s country and account requirements. Supported customer payment currencies and available payout currencies are separate lists; don’t treat one as proof of the other.
WooPayments includes automatic exchange rates, manual exchange-rate controls, and price-rounding options in its multi-currency settings. Its multi-currency functionality does not require a separate switcher subscription, but payment processing, currency conversion, and other applicable transaction fees still matter. Check the current fee schedule for your merchant country rather than borrowing a percentage from another store’s tutorial.
Dedicated currency-switcher plugins are a separate category. Their documentation needs to establish whether they provide display-only conversion or genuine multi-currency checkout with your existing gateway. Features such as fixed prices per currency, location-based selection, rate markups, and support for subscription renewals depend on the individual plugin and sometimes its paid tier.
The cost comparison therefore includes more than a license. Count annual renewals, any exchange-rate service charges, processor conversion costs, and the maintenance involved in keeping several integrations compatible.
Before settling on a setup, check these five items:
- Gateway coverage: your merchant country, required charge currencies, and each payment method—not just card payments generally.
- Checkout support: explicit compatibility with your Checkout Block or classic checkout, plus any express-payment buttons.
- Customer controls: a keyboard-accessible switcher that remains usable on a narrow mobile screen.
- Cache behavior: documented handling of currency-specific prices, sessions, and location detection.
- Extension compatibility: product add-ons, restaurant ordering, tipping, delivery rules, and recurring payments where relevant.
For restaurant builds, FoodMaster’s WooCommerce restaurant ordering system provides delivery, pickup, dine-in, and QR table ordering. That makes its ordering workflows part of your currency test plan—not evidence that every third-party converter is compatible. Verify the actual extension versions together.
Set up multiple currencies with WooPayments, step by step
The walkthrough below covers an eligible store already using WooPayments. Admin labels can shift between releases, so treat the named settings as landmarks rather than assuming every installation has an identical screen.
1. Prepare a recoverable test environment
Back up the database and files, then create a staging copy. Record your current WooCommerce, WooPayments, theme, and ordering-extension versions. Update on staging first rather than introducing several untested changes during a busy trading period.
Use test mode for checkout testing and disable real fulfillment actions on staging, including kitchen printing and customer notifications where appropriate. Confirm that copying the site hasn’t left production payment credentials or integrations behaving unexpectedly.
2. Confirm account and currency eligibility
Check that your WooPayments account is active and eligible in your business’s country. Next, verify the currencies you intend to accept and the payment methods available for them. A currency supported for card charges does not necessarily work with every local payment method.
Decide which bank account and payout currency you’ll use. Accepting dollars from customers does not, by itself, mean dollar payouts are available or configured.
3. Enable multi-currency and add your currencies
In the WooPayments settings, commonly reached through Payments → Settings, locate the advanced multi-currency option and enable it. Save your changes. Currency management is generally available under WooCommerce → Settings → Multi-currency once the feature is enabled.
Add the currencies your customers actually need. Starting with two or three makes support and reconciliation easier than publishing a long list you haven’t tested. Keep your base currency unchanged unless you’re deliberately undertaking a separate store-currency migration.
4. Configure rates and price rounding
Open each added currency’s management settings. Choose automatic rates or a manually maintained rate, and review the rounding or price-ending controls available in your installed version. Manual rates need an owner and a review schedule; otherwise, “temporary” settings have a habit of becoming permanent.
For an illustrative calculation, a €20 item at a hypothetical rate of 1.10 USD per EUR becomes $22 before applicable rounding. That rate is an example, not a current quote. Compare a cheap add-on, a regular meal, and a large basket to see how rounding affects each.
Record the configuration so unexplained price changes are easier to investigate later. Don’t assume the customer-price rate and the processor’s settlement conversion will produce identical results.
[IMAGE: WooCommerce multi-currency settings showing enabled EUR and USD currencies, exchange-rate controls, and rounding settings alongside a sample converted product price]
5. Add the supported customer-facing switcher
WooPayments provides a currency-switcher widget. On a theme with widget areas, add it through the available widget controls and place it somewhere customers can find before adding products.
Block themes and custom headers may need a different supported placement approach. Check the installed version’s available controls rather than pasting an assumed shortcode into the header. Test the rendered switcher, not just its editor preview.
6. Keep one system responsible for conversion
If you use another gateway, verify that a compatible integration passes the selected currency to that gateway and saves it on the order. Check refunds, express checkout, and any currency restrictions too.
Don’t run two competing conversion systems together. Disable the redundant one on staging and clear relevant caches before comparing results; otherwise, identifying which component changed a price becomes guesswork.
Make currency selection clear on menus, product pages, and checkout
The best switcher is easy to find and boring to operate. Put it near the menu or store navigation, with another accessible opportunity to change currency in the cart if your integration supports that. Don’t bury the only control in a footer below fifty menu items.
Use an explicit label such as “Currency,” provide visible keyboard focus, and test selection without a mouse. Screen readers should announce the control’s name and current value. A flag alone is a poor label: countries and currencies don’t map neatly to each other.
Prefer “USD,” “CAD,” or “AUD” over an unexplained dollar sign. Where space permits, “USD — US dollar” is clearer still. On mobile, confirm that the dropdown doesn’t collide with sticky basket controls or disappear behind the checkout panel.
Automatic location detection can offer an initial suggestion, but it shouldn’t override a customer’s deliberate choice. VPNs, travel, corporate networks, and shared connections make location an imperfect proxy for payment preference. A visitor standing inside an Italian restaurant may still want to browse in pounds.
Consider that visitor scanning a table QR code, ordering a pizza, and adding extra cheese. The currency selection should remain consistent from the menu to the modifier panel, basket, and payment screen. The table association must survive too.
For FoodMaster ordering flows, test delivery, pickup, and dine-in separately when enabled. Check meal bundles and modifiers, then inspect delivery fees and minimum-order rules. A €15 minimum needs a coherent equivalent or clearly defined behavior in another checkout currency—not a naked “15” interpreted as pounds or dollars.
Tips deserve their own check. If you’re adding gratuities, Tipping – Add Order Tip for WooCommerce provides preset and custom tipping options. Confirm compatibility with your selected currency integration and checkout type before launch.
For any percentage-tip workflow, verify which subtotal the percentage uses. For fixed or custom monetary amounts, check conversion, currency labels, and what happens when someone changes currency after entering a tip.
Test payments, discounts, refunds, and order records
A converted product page proves very little about checkout. The useful test follows money from the menu through the transaction and into the payout record.
Create a reference basket with a product, a paid modifier, a coupon, and a delivery charge. Add a tip if your store accepts them. Write down the base-currency inputs and the configured exchange-rate behavior so you can explain differences rather than merely spotting them.
Use this compact test matrix for every enabled checkout currency:
- Customer sessions: guest and logged-in shoppers, a fresh session, and a return visit with an existing basket.
- Devices: mobile and desktop, including keyboard operation and currency changes after adding items.
- Discounts: percentage and fixed-amount coupons, minimum-spend restrictions, and free-shipping rules where used.
- Charges: applicable taxes, delivery or shipping fees, paid modifiers, bundles, and tips.
- Payments: every exposed payment method, including express buttons and their return-to-store flow.
- After payment: full refunds, partial refunds, emails, order administration, and any kitchen or accounting exports.
Fixed-value rules need particular attention. A percentage discount generally scales with the basket, while a fixed coupon or free-delivery threshold needs deliberate currency handling. Tax rounding can also produce small differences depending on calculation settings; investigate those rather than forcing every result to match a simplified calculator.
[IMAGE: Multi-currency test worksheet comparing a USD checkout total, the payment transaction currency, the WooCommerce order currency, and the EUR payout reconciliation]
For each successful payment, compare four records: the final total shown before payment, the gateway’s transaction amount and currency, the saved WooCommerce order amount and currency, and the eventual payout details. The first three should agree on the customer’s charge. The payout may differ because of conversion, fees, and settlement arrangements.
For example, an illustrative $33 order should remain a USD order even if your bank receives euros. Don’t compare $33 directly with the net euro deposit and call the difference a missing payment.
Test refunds from the intended administrative workflow. Verify refunded items, taxes, delivery charges, and tips separately. The processor’s rules determine whether processing or conversion fees are returned; a customer whose bank converted the original charge may receive a different home-currency amount after exchange-rate changes.
Test mode won’t demonstrate every live settlement detail. Before wider rollout, use a permitted low-value live transaction to check the actual charge and payout trail, allowing for settlement timing and applicable fees.
Fix common currency-switcher problems and decide when to keep one currency
The switcher is missing
Confirm that multi-currency is enabled, additional currencies are active, and the switcher was added to a location your current template actually renders. A widget assigned to an unused sidebar won’t appear in a custom header. Check mobile visibility settings and stale page caches next.
Checkout returns to the store currency
First establish whether the tool is display-only. If it promises multi-currency checkout, check gateway currency support, the specific payment method, and Checkout Block compatibility. An express-payment button may follow a different integration path from the ordinary checkout button.
Converted prices are stale or inconsistent
Full-page caching can serve one visitor’s currency to another if the cache doesn’t distinguish the relevant session or currency state. Follow the integration’s documented cache configuration. Exclude cart and checkout from full-page caching, and inspect CDN caching as well as WordPress-level caching.
If prices depend on currency cookies or location, verify how those affect cache keys or price updates. Don’t simply disable every cache permanently; ordering sites still need to handle the lunch rush.
Prices appear to convert twice
Look for overlapping currency plugins, theme conversion features, or custom price filters. Also check whether someone entered already-converted prices into fields the integration expects to hold base-currency values.
For inconsistent totals, reproduce the issue on staging with a minimal basket. Remove the modifier, coupon, delivery fee, and tip one at a time. Then perform controlled plugin and theme conflict testing, preserving the gateway and conversion components needed to reproduce the fault.
Before launch, confirm these essentials:
- Customers can identify and change currency accessibly.
- Enabled payment methods charge and record the correct currency.
- Modifiers, fees, thresholds, discounts, and tips pass testing.
- Cache behavior, refunds, and payout reconciliation are understood.
- Your team has a rollback plan and knows who maintains rates.
For a local restaurant, one checkout currency may still be the sensible choice. If menus, POS records, kitchen receipts, and accounts all operate in euros, approximate foreign-currency displays can help tourists without changing how you take payment.
Just make the distinction unmistakable: “Approximate USD price. Payment charged in EUR.” Multiple currencies are useful when they remove customer uncertainty—not when they move that uncertainty into checkout.
Commission-free ordering
Run restaurant orders on your own WordPress site
FoodMaster adds delivery, pickup, dine-in, POS, and kitchen tools — with zero per-order fees.