How to Set Up WooCommerce Multi-Currency for International Sales
Selling internationally without multi-currency support is like opening a restaurant but only accepting one form of payment. According to Baymard Institute research, roughly 18% of shoppers abandon carts because they cannot see prices in their local currency. For WooCommerce store owners eyeing global markets, setting up multi-currency is not optional anymore.
This guide walks you through everything needed to accept multiple currencies in WooCommerce: choosing the right plugin, configuring exchange rates, setting up geolocation-based switching, ensuring payment gateway compatibility, and handling WPML integration for multilingual stores.
Why Multi-Currency Matters for International WooCommerce Stores
Shoppers trust prices shown in their own currency. A study published by Shopify’s enterprise research found that 92% of consumers prefer to shop on sites that price in their local currency. Beyond preference, there are hard business reasons to implement multi-currency support.
None of this is abstract. A shopper who has to open a separate currency converter tab mid-checkout is a shopper who, more often than not, just closes the tab entirely.
Reduced Cart Abandonment
When a customer in Germany sees prices in USD, they face two mental hurdles. First, they need to mentally convert the price. Second, they wonder what their bank will charge for currency conversion. Multi-currency removes both obstacles by showing the final price upfront.
Improved SEO for International Markets
Google’s search algorithms favor localized content. When your WooCommerce store displays prices in local currencies alongside localized URLs (using WPML or similar), you signal to search engines that your store serves that specific market. This can improve rankings in country-specific Google results.
Higher Conversion Rates
According to data from Statista, stores that display local currencies see conversion rate improvements of 12-20% in international markets compared to single-currency stores. That is revenue you leave on the table without multi-currency.
Choosing the Right WooCommerce Multi-Currency Plugin
WooCommerce does not include native multi-currency support. You need a dedicated plugin. Here are the top options, each with distinct strengths depending on your store setup and budget.
WOOCS – WooCommerce Currency Switcher
WOOCS is one of the most popular free options on the WordPress plugin repository. It supports unlimited currencies and automatic exchange rate updates via multiple API providers, with a front-end currency switcher widget built in. The free version covers most basic needs, while the premium version adds geolocation-based currency detection and price rounding rules.
- Best for: Stores on a budget that need basic currency switching
- Price: Free (premium from $30/year)
- Exchange rate APIs: Open Exchange Rates, Fixer, Currency Layer
- Geolocation: Premium only
WPML WooCommerce Multilingual
If you already run a multilingual store with WPML, their WooCommerce Multilingual add-on is the natural choice. It ties currency switching directly to language switching, so when a visitor views your French translation, they automatically see EUR prices. You can set manual exchange rates or use automatic updates.
- Best for: Multilingual stores already using WPML
- Price: Included with WPML CMS ($99/year) or Agency ($199/year)
- Exchange rate APIs: Built-in automatic rates, manual override per product
- Geolocation: Yes, via WPML’s language detection
Aelia Currency Switcher for WooCommerce
Aelia is a premium-only plugin known for its reliability and deep WooCommerce integration. It handles complex scenarios like different prices per currency per product and currency-specific shipping rules, with full compatibility for WooCommerce Subscriptions for recurring revenue. It has been around since 2013 and powers enterprise-level stores.
- Best for: Complex stores with subscriptions or variable pricing, advanced shipping rules included
- Price: From $89/year
- Exchange rate APIs: Multiple providers with automatic scheduling
- Geolocation: Yes, with MaxMind GeoIP integration
Currency Switcher for WooCommerce by Villa Starter (Free)
A lightweight free option that adds a simple currency switcher to your store. It pulls real-time rates from the European Central Bank and supports all major currencies. Limited on advanced features but works well for small stores testing international waters.
- Best for: Small stores wanting a simple, free solution
- Price: Free
- Exchange rate APIs: European Central Bank
- Geolocation: No
Plugin Comparison Table
| Feature | WOOCS (Free) | WOOCS (Pro) | WPML WCM | Aelia |
|---|---|---|---|---|
| Auto exchange rates | Yes | Yes | Yes | Yes |
| Geolocation detection | No | Yes | Yes | Yes |
| Custom prices per product | No | Yes | Yes | Yes |
| Subscription support | No | Limited | Yes | Yes |
| WPML integration | Basic | Yes | Native | Yes |
| Price rounding | No | Yes | Yes | Yes |
| Currency per country rules | No | Yes | Yes | Yes |
Step-by-Step: Setting Up Multi-Currency in WooCommerce
This walkthrough uses WOOCS as the example since it is the most widely used free option. The general concepts apply to all plugins listed above.
Step 1: Install and Activate the Plugin
Navigate to Plugins > Add New in your WordPress dashboard. Search for “WOOCS – WooCommerce Currency Switcher” and click Install Now, then Activate. After activation, you will find the settings under WooCommerce > Settings > Currency or a dedicated WOOCS menu item.
Step 2: Configure Your Base Currency
Your base currency should match the currency set in WooCommerce > Settings > General. This is the currency your product prices are entered in. All other currencies will be calculated from this base using exchange rates.
Important: If you change your base currency later, all existing product prices become misaligned. Set this correctly from the start and do not change it once products are live.
Step 3: Add Target Currencies
In the WOOCS settings panel, add each currency you want to support. For each currency, configure:
- Currency code (e.g., EUR, GBP, INR, JPY)
- Currency symbol and position (before or after the amount)
- Exchange rate relative to your base currency
- Number of decimal places (JPY uses 0, most others use 2)
Start with 3-5 currencies representing your biggest international markets. You can always add more later. Common choices for stores based in the US include EUR, GBP, CAD, AUD, and INR.
Step 4: Configure Exchange Rate Updates
Manual exchange rate management is impractical for live stores. Set up automatic rate fetching:
- Choose an exchange rate provider (Open Exchange Rates and Fixer.io are the most reliable)
- Register for an API key on the provider’s website (free tiers available)
- Enter the API key in the plugin settings
- Set the update frequency (every 6-12 hours works well for most stores)
- Enable the option to add a small margin (1-3%) to cover conversion fee fluctuations
Adding a margin protects you from exchange rate dips between the time of purchase and when the payment processor settles funds to your account.
Step 5: Enable Geolocation-Based Currency Detection
Geolocation automatically shows visitors their local currency based on their IP address. WooCommerce includes a built-in MaxMind GeoLite2 database integration:
- Go to WooCommerce > Settings > Integration
- Enter your MaxMind license key (free account at maxmind.com)
- WooCommerce will download the geolocation database automatically
- In your currency plugin settings, enable “Auto-detect currency by country”
- Map each country to its default currency
Geolocation is not 100% accurate (VPN users, travelers), so always keep the manual currency switcher visible for visitors who want to change.
Step 6: Add the Currency Switcher Widget
Most multi-currency plugins include a frontend widget or shortcode. Place it where shoppers can easily find it:
- Header (most common, beside the cart icon)
- Sidebar (for shops with a visible sidebar)
- Footer (secondary placement)
The switcher should show a dropdown or flags representing available currencies. Use [woocs] shortcode or the WOOCS widget from Appearance > Widgets.
Payment Gateway Multi-Currency Support
Choosing the right payment processor is critical for multi-currency success. If you have not selected a gateway yet, our guide to the best WooCommerce payment gateways covers all the top options. Here is where many store owners get tripped up. Your currency plugin converts display prices, but the payment gateway handles the actual transaction. If there is a mismatch, customers see one price but get charged differently.
How Payment Gateways Handle Multiple Currencies
Payment gateways fall into three categories regarding multi-currency:
- Native multi-currency: The gateway processes the charge in the customer’s selected currency. Stripe and PayPal both support this.
- Auto-conversion: The gateway receives the charge in your base currency and handles conversion on their end. The customer may see a different amount on their bank statement.
- Single currency only: The gateway only processes your base currency. Customers pay in your currency regardless of what was displayed.
Stripe Multi-Currency Setup
Stripe is the best option for WooCommerce multi-currency because it natively supports 135+ currencies. When configured correctly with your currency plugin, Stripe charges the customer in their selected currency and deposits the funds in your base currency after conversion.
To enable multi-currency in Stripe:
- Ensure you use the official WooCommerce Stripe Gateway plugin
- In your Stripe dashboard, verify your account supports the currencies you want to accept
- In your currency plugin settings, enable “Checkout in selected currency” mode (not “convert at checkout”)
- Test a purchase in each currency to confirm correct charging
PayPal Multi-Currency Considerations
PayPal supports multi-currency but with limitations. PayPal charges a 3-4% currency conversion fee on top of their standard transaction fees. Not every PayPal account supports every currency either. Check PayPal’s supported currencies list before adding currencies to your store.
Recommended Gateway Configuration
| Gateway | Multi-Currency | Conversion Fees | Recommendation |
|---|---|---|---|
| Stripe | Native (135+ currencies) | 1% above mid-market rate | Best choice for multi-currency |
| PayPal | Supported (25 currencies) | 3-4% conversion fee | Good secondary option |
| Square | Limited (5 currencies) | Varies | Only if already using Square POS |
| Razorpay | Yes (100+ currencies) | 2% above mid-market | Best for stores targeting India |
WPML Compatibility: Multi-Currency for Multilingual Stores
If your WooCommerce store serves multiple languages using WPML, multi-currency integration becomes more nuanced. WPML’s WooCommerce Multilingual add-on handles both language and currency switching in tandem.
Setting Up Currency-Language Pairing
The most effective approach ties specific currencies to specific languages:
- English (US) → USD
- French → EUR
- German → EUR
- Japanese → JPY
- Hindi → INR
In WPML WooCommerce Multilingual settings, you configure this under WooCommerce > WooCommerce Multilingual > Multi-currency. Each language gets a default currency, but visitors can still switch manually.
Product Price Translation
WPML gives you two options for product prices across currencies:
- Automatic conversion: Use exchange rates to calculate all prices from the base currency. Simple but prices may look odd (e.g., $29.99 becomes 27.43 EUR)
- Manual pricing: Set specific prices per currency per product. More work but prices look clean (e.g., $29.99 USD / 29.99 EUR / 2499 INR)
For most stores, a hybrid approach works best: use automatic conversion as the default, then manually override prices for your top-selling products to create clean, marketable numbers.
URL Structure for Multi-Currency + Multilingual
WPML creates language-specific URLs (e.g., yourstore.com/fr/ for French). When combined with multi-currency, the currency parameter typically follows the language directory. This structure helps search engines understand your localized pages and can improve international SEO rankings.
Exchange Rate Management Best Practices
Exchange rates fluctuate constantly. Poor rate management can eat into your margins or lead to customer complaints about price discrepancies.
Automatic vs. Manual Rates
Always use automatic exchange rate updates for live stores. Manual rates become outdated within hours and create pricing inaccuracies that can cost you money or erode customer trust.
Adding a Conversion Margin
Add a 1-3% margin on top of the mid-market exchange rate. This buffer covers:
- The spread between the time of purchase and payment settlement
- Payment gateway conversion fees
- Minor rate fluctuations throughout the day
Most currency plugins allow you to set this margin globally or per currency. A 2% margin is a reasonable starting point for most stores.
Price Rounding Rules
Converted prices often produce odd numbers like 27.43 or 1,847. Configure rounding rules to create psychologically appealing prices:
- Round to .99: 27.43 becomes 27.99 (most common for Western markets)
- Round to nearest 5 or 10: 1,847 JPY becomes 1,850 JPY
- Round down: 27.43 becomes 26.99 (more aggressive but better for price-sensitive markets)
Common Multi-Currency Setup Mistakes
Changing the base currency after launch is the costliest mistake on this list. Every product price, every past order record, every report gets built against whatever currency was set first. Get this one decision right before you add a single product, not after.
Trusting the currency switcher without checking the payment gateway is the second one. A store can display perfect EUR pricing while Stripe or PayPal quietly settles everything in USD behind the scenes, at whatever rate the gateway applies that day, not the rate the customer saw on the product page. That mismatch is invisible until a customer complains about their bank statement.
Caching is the third trap. Full-page caching plugins don’t know a currency switcher exists. Without excluding the currency cookie from cache or switching to AJAX price loading, every visitor after the first one in a given cache window sees the wrong currency, no matter what their geolocation says.
Adding too many currencies too fast rounds out the list. Ten currencies you never review is worse than three you actually watch. Each one needs a sane exchange margin, a rounding rule that fits that market, and someone checking, at least occasionally, that the numbers still make sense.
Testing Your Multi-Currency Setup
Before going live with multi-currency, run thorough tests to avoid checkout failures and pricing errors.
Essential Test Checklist
- Browse products in each currency: Verify prices display correctly on shop, category, and single product pages
- Add to cart and check totals: Ensure cart totals, shipping, and tax calculate correctly per currency
- Complete checkout in each currency: Use Stripe’s test mode to process test orders in each supported currency
- Verify order admin view: Check that WooCommerce admin shows both the charged currency and your base currency equivalent
- Test geolocation detection: Use a VPN to simulate visits from different countries and verify automatic currency switching
- Test the currency switcher: Manually switch currencies and verify all page elements update (product price, cart widget, mini-cart)
- Check email notifications: Confirm order confirmation emails show the correct currency and amounts
- Test with coupons and discounts: Verify percentage and fixed-amount coupons work correctly across currencies
Common Issues and Fixes
| Issue | Cause | Fix |
|---|---|---|
| Prices not updating on switch | Page caching | Exclude currency cookie from cache, use AJAX price loading |
| Wrong currency at checkout | Gateway not configured for multi-currency | Enable multi-currency mode in gateway settings |
| Shipping rates not converting | Flat rate shipping in base currency only | Use percentage-based shipping or configure per-currency rates |
| Tax calculation errors | Tax rules based on base currency amounts | Enable currency-aware tax calculation in plugin settings |
| AJAX mini-cart shows wrong currency | Fragment caching issue | Clear cart fragments cache, check theme compatibility |
Performance Considerations
Multi-currency plugins add processing overhead to every page load since prices need real-time conversion. Keep performance in check with these practices:
- Cache exchange rates locally: Fetch rates every 6-12 hours, not on every page load
- Use AJAX for price switching: Load prices via AJAX after the page renders to work with full-page caching
- Limit active currencies: Each additional currency adds minimal overhead, but 20+ currencies can slow things down. Stick to 5-10 currencies that represent your actual markets
- Monitor database queries: Some plugins add extra queries per product. Use Query Monitor to check impact
Handling Taxes Across Currencies
Tax compliance in multiple currencies adds another layer of complexity. We covered the fundamentals in our WooCommerce tax setup guide for multiple countries. Different countries have different tax rules, VAT in the EU and GST across India and Australia, sales tax in the US on top of that, and these must apply correctly regardless of the display currency.
WooCommerce’s built-in tax engine handles most scenarios. The key settings:
- Set tax rates based on the customer’s shipping or billing country (not the display currency)
- Configure whether prices include or exclude tax per region
- For EU VAT, consider a dedicated plugin like WooCommerce EU VAT Number that validates business VAT numbers and applies B2B reverse charge rules
Frequently Asked Questions
Does multi-currency change how I do accounting?
Yes, and this catches store owners off guard more than any technical setting. Your accounting should still be based on your base currency, the amount your gateway actually settles into your bank account, not the display currency the customer saw. Keep a clear record of the exchange rate applied at the time of each transaction; your accountant will need it at tax time.
Can I run multi-currency without WPML?
Yes. WOOCS and Aelia both work as standalone currency switchers with no multilingual requirement. WPML only becomes necessary if you also want language-specific URLs and content, not just currency switching.
How many currencies should I actually support?
Start with the currencies of your top 3-5 markets by traffic or existing order data, not every currency the plugin offers. A dropdown with 25 currencies you never check is a maintenance burden, not a feature. Add more only when the sales data from a specific country justifies the extra oversight.
Need Help With Your WooCommerce Multi-Currency Setup?
Plugin selection is the easy part. The parts that actually break live stores are gateway settlement mismatches and cache exclusions nobody remembers to configure, plus rounding rules copied from a market they were never built for.
Every store has different requirements based on target markets, product types and existing tech stack.
If you’d rather not debug a mispriced checkout in production, get in touch for a free WooCommerce consultation. We’ve configured multi-currency for stores selling into 50+ countries, and we can tell you in one call whether your specific setup (WPML or not, Stripe or PayPal, subscriptions or one-time) needs Aelia or WOOCS, or nothing more complex than the free Villa Starter option.