In this guide

Explore the steps and reference sections below.

Start reading
On this page

Currency Switcher allows your WooCommerce store to display prices in multiple currencies, giving international customers a familiar shopping experience. Prices are automatically converted based on exchange rates, and visitors can switch between currencies using a customizable widget.

Getting Started

Currency Switcher dashboard with a currency row expanded to show exchange-rate and fee controls
  1. Navigate to Swift Commerce → Currency Switcher in your WordPress admin
  2. Enable the feature using the toggle
  3. Add the currencies you want to support
  4. Configure manual rates, or fetch rates on demand with ExchangeRate-API and save the reviewed result
  5. Place the switcher using its shortcode (Free) or Elementor widget (Pro)

Currencies Tab

Managing Currencies

Your WooCommerce base currency is automatically added and marked as the default. From here you can add additional currencies for your international customers.

ActionDescription
Add CurrencyChoose from the supported WooCommerce currency catalogue
Enable/DisableToggle individual currencies on or off
ReorderDrag and drop to change display order
Set DefaultChoose which currency is shown by default

Edition availability: The current Free plugin is not limited to one additional currency. Both editions use configured currencies from the supported catalogue. Pro adds fixed product prices, sale schedules and expanded controls; do not treat Pro as an unlimited-storage promise.

Supported Currencies

The selector includes more than 100 currency choices. The following are examples; the available codes follow the current currency catalogue:

CurrencyCodeSymbol
US DollarUSD$
EuroEUR€
British PoundGBP£
Japanese YenJPY¥
Australian DollarAUDA$
Canadian DollarCADC$
Swiss FrancCHFCHF
Chinese YuanCNY¥
Indian RupeeINR₹
Mexican PesoMXNMX$
Brazilian RealBRLR$
South Korean WonKRW₩
And many more…

Currency Configuration

Each currency has configurable settings:

Exchange Rate Settings:

SettingDescriptionOptions
Rate TypeHow the exchange rate is determinedFixed / Auto (API)
RateThe conversion rate relative to default currencyNumeric value

Fee Settings:

SettingDescriptionOptions
Fee TypeHow to calculate conversion feeFixed Amount / Percentage
FeeAmount to add to converted pricesNumeric value

Price Format Settings:

SettingDescriptionOptions
DecimalsNumber of decimal places0-4
Symbol PositionWhere to display currency symbolBefore amount / After amount / Before with space / After with space
Rounding TypeHow to round converted pricesNone / Round Up / Round Down / Round Nearest
Rounding ValueValue to round toe.g., 0.99, 0.50, 1.00

Appearance Tab

Templates

Choose from pre-designed switcher styles:

TemplateDescription
DefaultClean dropdown with flag and currency code
MinimalSimple text-only dropdown
Flags OnlyCompact flag buttons
Pill StyleRounded pill-shaped buttons
ModernContemporary design with shadows
ClassicTraditional bordered select
CustomUse available color controls; additional design controls require Pro

Display Options (Pro – Custom Template)

SettingDescriptionDefault
Show FlagsDisplay country flags next to currenciesEnabled
Show Currency NameDisplay the full currency nameEnabled
Show Currency CodeDisplay the code (e.g., “USD”)Enabled
Show Currency SymbolDisplay the symbol (e.g., “$”)Enabled

Layout Settings (Pro)

SettingDescriptionOptions
Switcher LayoutHow currencies are displayedDropdown / Button Group / Vertical List
AlignmentHorizontal alignmentLeft / Center / Right

Colors & Styling

SettingDescriptionDefault
Background ColorSwitcher background#ffffff
Text ColorText and labels#1f2937
Border ColorBorder around switcher#e5e7eb
Hover BackgroundBackground on hover#f3f4f6
Hover Text ColorText color on hover#111827

Flag Settings (Pro)

SettingOptions
Flag StyleCircle / Square / Rounded
Flag SizeSmall (16px) / Medium (24px) / Large (32px)

Auto Currency Tab (Pro)

These Pro controls describe the intended location-based workflow. Current limitation: the normal dashboard settings do not fully connect to the legacy detection path. Use manual currency selection until that integration is corrected and tested.

Automatic Currency Detection

SettingDescriptionDefault
Enable Auto CurrencyAutomatically switch based on visitor locationDisabled

The controls provide country-to-currency mappings, but their presence alone does not confirm working automatic switching in the current build. Keep a visible manual switcher available.

Country to Currency Mapping

Define which countries should display which currency:

  1. Click “Select a country to add”
  2. Choose the country from the dropdown
  3. Select which currency visitors from that country should see
  4. Repeat for each country you want to configure

Example Mappings:

CountryCurrency
United StatesUSD
United KingdomGBP
GermanyEUR
JapanJPY
AustraliaAUD

Countries not in your mapping list will see the fallback currency.

Fallback Settings

SettingDescription
Fallback CurrencyCurrency shown when visitor’s country is not mapped
Respect User ChoiceDon’t auto-switch if visitor manually selected a currency
Remember DurationDays to remember the user’s currency preference

Detection Method

MethodDescription
IP DetectionUses visitor’s IP address to determine country
BrowserUses browser language settings
BothTries IP first, falls back to browser

GeoIP Provider

ProviderAPI Key Required
IP-APINo (Free)
MaxMind GeoIP2Yes
IP2LocationYes

Test Mode

Enable test mode to simulate visitors from different countries:

SettingDescription
Test ModeEnable location simulation
Test CountryCountry code to simulate (e.g., “US”, “GB”)

Advanced Tab

Automatic Exchange Rate Updates (Pro)

Current limitation: scheduled updates need a settings/hook integration fix. Do not rely on the displayed interval to confirm that rates are refreshing. Use manual rates or the on-demand ExchangeRate-API refresh, review the result and save changes. A successful manual fetch does not prove the scheduler is working.

SettingDescriptionDefault
Enable Auto UpdatesAutomatically fetch and update ratesDisabled
Update IntervalHow often to update ratesDaily

Update Interval Options:

  • Every Hour
  • Once Daily
  • Once Weekly

Manual refresh: Select ExchangeRate-API, click Update Rates Now, inspect the returned rates, then click Save Changes. The fetch updates the dashboard draft; do not assume the new rates are saved until you save the settings.

Exchange Rate API (Pro)

ProviderAPI Key RequiredFree Tier
ExchangeRate-APINoYes
Open Exchange RatesYesYes
CurrencyLayerYesYes
Fixer.ioYesNo

For providers requiring an API key, enter your key in the “API Key” field.

Cache Settings

SettingDescriptionDefault
Enable CacheCache converted prices for performanceEnabled
Cache DurationHow long to cache prices (seconds)3600

Cookie Settings

SettingDescriptionDefault
Cookie DurationDays to remember user’s currency choice30

Shortcode Tab

Basic Usage

Display the currency switcher anywhere using:

[swift_commerce_currency_switcher]

Elementor Widget (Pro)

For Elementor users, a dedicated currency switcher widget is available:

  1. Edit any page with Elementor
  2. Search for “Currency Switcher” in the widget panel
  3. Drag the widget to your page
  4. Customize appearance in the widget settings

How Price Conversion Works

  1. Base Price: Products are stored in your WooCommerce default currency
  2. Exchange Rate: Applied to convert to target currency
  3. Fee (Optional): Added as fixed amount or percentage
  4. Rounding (Optional): Applied based on rounding settings

Example:

  • Product price: $100.00 USD
  • Exchange rate to EUR: 0.92
  • Fee: 2%
  • Rounding: Nearest 0.50

Calculation: $100 × 0.92 = €92.00; add 2% to get €93.84, then round to the nearest €0.50 to get €94.00. A rounding increment is not the same as a “price ending in .99” rule.


WooCommerce Integration

Price Conversion

Product and variation price filters cover supported product browsing contexts. Test these storefront areas with your theme and pricing extensions:

  • Product pages (single price, variations)
  • Shop/category pages
  • Cart and checkout
  • Final order and email amounts: verify against the saved order; do not assume historical orders are converted
  • Mini cart widget

Supported Price Types

Price TypeConverted
Regular Price✓
Sale Price✓
Variable Product Prices✓
Shipping costsVerify separately with the shipping method; product-price conversion is not proof of shipping conversion
Tax amountsVerify in a real checkout with your tax configuration and payment gateway

Using the current Currencies list

Use Add currency to choose a supported code, then search and filter configured currencies by status. Expand a row to edit it; drag to reorder currencies or use its actions menu for keyboard-accessible ordering. Each row shows its code, name, enabled state, rate source, and whether it is the default/store currency. Disable currencies you do not want shoppers to select rather than assuming that adding one publishes it immediately.

Per-currency editor

Choose Fixed rate or Auto (API) and review the exchange rate relative to the base currency. A conversion fee may be a fixed amount in the selected currency or a percentage; it is added after conversion and before rounding. Decimal places (0–4), symbol position, decimal and thousands separators, rounding method, and rounding increment control formatting. Rates, fees, and rounding do not apply to the default currency. The sample conversion is illustrative and excludes product-specific overrides.

Advanced limits and safeguards

Pro Auto Currency can detect or map a shopper’s currency, set a fallback, and remember their preference. Pro Advanced controls automatic rate updates, provider and API key, caching, converted-price display, and preference-cookie duration. The Exclusions panel is marked Coming Soon; product and category exclusions are

not currently active. Keep any API key private and verify the rate provider’s terms before enabling automatic updates.

Check storefront and checkout

  • Switch currencies on a product, cart, and checkout page. Compare a sample product price with the configured rate, fee, format, and rounding.
  • Test a currency with a different decimal separator and a zero-decimal currency.
  • Confirm the selected currency persists for the configured duration and that checkout behavior matches your chosen lock or fallback settings.

Product Prices (Pro)

Manage fixed regular/sale prices in enabled secondary currencies. This supports simple products, external products, standard variations and fixed-price Swift Commerce bundles. Subscription plans, subscription variations and calculated bundles keep their existing pricing behavior. A base-currency price is required; variable-parent overrides are not copied to variations.

Set a price in the product editor

  1. Enable Currency Switcher and save at least one enabled secondary currency.
  2. Edit the product and open Product data → Currency Prices. For a variable product, open a standard variation under Variations and expand Currency Prices.
  3. Expand a currency, enter Regular price and an optional Sale price, then optionally choose Sale starts and Sale ends. Dates are inclusive and use the WordPress site timezone.
  4. Update the product or save its variations. Inspect the product in the selected currency.
ValueResult
Blank regular priceConvert the saved base regular price using the currency’s rate, fee and rounding settings.
Fixed regular price, including 0Use that currency amount without exchange-rate fees or rounding. Zero is an intentional price.
Blank sale priceInherit an active base WooCommerce sale. With fixed regular pricing, preserve the base sale’s percentage discount.
Fixed sale priceUse it while its optional date range is active. It must be lower than the effective regular price.
Both prices blankRemove that currency’s override without changing other currencies.

Use a decimal point with no symbol or thousands separator, up to six decimal places. Sale dates require an explicit sale amount. Automatic conversion is a read-only preview of saved prices and rates; save base-price edits before reviewing a fresh preview.

Review and apply dashboard price changes

  1. Go to Swift Commerce → Currency Switcher → Product Prices and choose an enabled secondary currency.
  2. Search by product name or browse pages. Standard variations have separate rows; unsupported product types are omitted.
  3. Edit amounts and dates. Click Review price changes, inspect the before-and-after values, then Apply reviewed prices.
  4. Price edits are saved by Apply reviewed prices, not the general header Save Changes button. Pricing policy separately uses Save pricing policy.

Use CSV without overwriting unreviewed prices

Export this page exports saved values for the current page and supplies the import template. Required headers are product_id,currency,regular,sale,from,to,revision. Retain IDs and revisions, use YYYY-MM-DD dates and preserve blank values. Import up to 100 rows / 1 MB with Import CSV for review. Each product/currency pair must be unique. No price is saved until Apply reviewed prices. Every row is validated before writing, then each product reports success or failure; the batch is not an all-or-nothing transaction. Reload/export again if a product changed since review.

Choose pricing precedence

Preserve adjustments on top of fixed prices converts the difference between an adjusted product price and its saved base price, then adds that difference to the fixed currency price. For example, EUR 50 plus a base-currency extra of 10 at a 0.8 rate becomes EUR 58. Use the fixed product price unchanged ignores those upstream adjustments; do not use it when paid extras must increase the product price. Coupons apply after product pricing. Test third-party extensions that adjust prices after conversion separately.

Saving overrides refreshes the relevant WooCommerce product cache. Full-page/CDN caches must still vary by selected currency; review their behavior at scheduled sale boundaries.

Verify the price before offering a currency

Automatic conversion follows this order: base product price × exchange rate, then the configured conversion fee, then rounding. An explicit Pro currency price bypasses that calculation. Coupons and compatible upstream price adjustments follow their own rules, so test the final amount with paid extras or dynamic-pricing extensions.

  1. Choose one supported product and record its saved base price. Set a known secondary-currency rate, fee and rounding increment, then save.
  2. Select that currency on the storefront and compare the price with your calculation. In Pro, enter a fixed price and confirm it bypasses the rate, fee and rounding.
  3. For a currency-specific sale, test before, during and after the inclusive date range. Dates use the WordPress site timezone; clear or vary page/CDN caches correctly.
  4. Complete a test checkout with your gateway. Check shipping, tax, charged currency, order total and order emails. Currency selection alone does not make a gateway accept that currency.

Use the multiple-currency tutorial and conversion-fee tutorial. See Currency Switcher features and edition differences before choosing a plan.