{"id":3027,"date":"2025-12-27T20:58:54","date_gmt":"2025-12-27T20:58:54","guid":{"rendered":"https:\/\/www.swiftcommerce.io\/help\/?post_type=docs&#038;p=3027"},"modified":"2026-11-07T11:45:39","modified_gmt":"2026-11-07T11:45:39","password":"","slug":"currency-switcher","status":"publish","type":"docs","link":"https:\/\/www.swiftcommerce.io\/help\/currencies\/currency-switcher\/","title":{"rendered":"Currency Switcher"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Getting Started<\/h3>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"950\" height=\"600\" src=\"https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-7.jpeg\" alt=\"Currency Switcher dashboard with a currency row expanded to show exchange-rate and fee controls\" class=\"wp-image-3353\" srcset=\"https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-7.jpeg 950w, https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-7-300x189.jpeg 300w, https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-7-768x485.jpeg 768w, https:\/\/www.swiftcommerce.io\/help\/wp-content\/uploads\/2025\/12\/clipboard-7-360x227.jpeg 360w\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Navigate to&nbsp;<strong>Swift Commerce \u2192 Currency Switcher<\/strong>&nbsp;in your WordPress admin<\/li>\n\n\n\n<li>Enable the feature using the toggle<\/li>\n\n\n\n<li>Add the currencies you want to support<\/li>\n\n\n\n<li>Configure manual rates, or fetch rates on demand with ExchangeRate-API and save the reviewed result<\/li>\n\n\n\n<li>Place the switcher using its shortcode (Free) or Elementor widget (Pro)<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Currencies Tab<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Managing Currencies<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Your WooCommerce base currency is automatically added and marked as the default. From here you can add additional currencies for your international customers.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Action<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>Add Currency<\/td><td>Choose from the supported WooCommerce currency catalogue<\/td><\/tr><tr><td>Enable\/Disable<\/td><td>Toggle individual currencies on or off<\/td><\/tr><tr><td>Reorder<\/td><td>Drag and drop to change display order<\/td><\/tr><tr><td>Set Default<\/td><td>Choose which currency is shown by default<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Edition availability:<\/strong> 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.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Supported Currencies<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The selector includes more than 100 currency choices. The following are examples; the available codes follow the current currency catalogue:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Currency<\/th><th>Code<\/th><th>Symbol<\/th><\/tr><\/thead><tbody><tr><td>US Dollar<\/td><td>USD<\/td><td>$<\/td><\/tr><tr><td>Euro<\/td><td>EUR<\/td><td>\u20ac<\/td><\/tr><tr><td>British Pound<\/td><td>GBP<\/td><td>\u00a3<\/td><\/tr><tr><td>Japanese Yen<\/td><td>JPY<\/td><td>\u00a5<\/td><\/tr><tr><td>Australian Dollar<\/td><td>AUD<\/td><td>A$<\/td><\/tr><tr><td>Canadian Dollar<\/td><td>CAD<\/td><td>C$<\/td><\/tr><tr><td>Swiss Franc<\/td><td>CHF<\/td><td>CHF<\/td><\/tr><tr><td>Chinese Yuan<\/td><td>CNY<\/td><td>\u00a5<\/td><\/tr><tr><td>Indian Rupee<\/td><td>INR<\/td><td>\u20b9<\/td><\/tr><tr><td>Mexican Peso<\/td><td>MXN<\/td><td>MX$<\/td><\/tr><tr><td>Brazilian Real<\/td><td>BRL<\/td><td>R$<\/td><\/tr><tr><td>South Korean Won<\/td><td>KRW<\/td><td>\u20a9<\/td><\/tr><tr><td>And many more&#8230;<\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Currency Configuration<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Each currency has configurable settings:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Exchange Rate Settings:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><th>Options<\/th><\/tr><\/thead><tbody><tr><td>Rate Type<\/td><td>How the exchange rate is determined<\/td><td>Fixed \/ Auto (API)<\/td><\/tr><tr><td>Rate<\/td><td>The conversion rate relative to default currency<\/td><td>Numeric value<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Fee Settings:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><th>Options<\/th><\/tr><\/thead><tbody><tr><td>Fee Type<\/td><td>How to calculate conversion fee<\/td><td>Fixed Amount \/ Percentage<\/td><\/tr><tr><td>Fee<\/td><td>Amount to add to converted prices<\/td><td>Numeric value<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Price Format Settings:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><th>Options<\/th><\/tr><\/thead><tbody><tr><td>Decimals<\/td><td>Number of decimal places<\/td><td>0-4<\/td><\/tr><tr><td>Symbol Position<\/td><td>Where to display currency symbol<\/td><td>Before amount \/ After amount \/ Before with space \/ After with space<\/td><\/tr><tr><td>Rounding Type<\/td><td>How to round converted prices<\/td><td>None \/ Round Up \/ Round Down \/ Round Nearest<\/td><\/tr><tr><td>Rounding Value<\/td><td>Value to round to<\/td><td>e.g., 0.99, 0.50, 1.00<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Appearance Tab<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Templates<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Choose from pre-designed switcher styles:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Template<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>Default<\/td><td>Clean dropdown with flag and currency code<\/td><\/tr><tr><td>Minimal<\/td><td>Simple text-only dropdown<\/td><\/tr><tr><td>Flags Only<\/td><td>Compact flag buttons<\/td><\/tr><tr><td>Pill Style<\/td><td>Rounded pill-shaped buttons<\/td><\/tr><tr><td>Modern<\/td><td>Contemporary design with shadows<\/td><\/tr><tr><td>Classic<\/td><td>Traditional bordered select<\/td><\/tr><tr><td>Custom<\/td><td>Use available color controls; additional design controls require Pro<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Display Options&nbsp;<em>(Pro &#8211; Custom Template)<\/em><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><th>Default<\/th><\/tr><\/thead><tbody><tr><td>Show Flags<\/td><td>Display country flags next to currencies<\/td><td>Enabled<\/td><\/tr><tr><td>Show Currency Name<\/td><td>Display the full currency name<\/td><td>Enabled<\/td><\/tr><tr><td>Show Currency Code<\/td><td>Display the code (e.g., &#8220;USD&#8221;)<\/td><td>Enabled<\/td><\/tr><tr><td>Show Currency Symbol<\/td><td>Display the symbol (e.g., &#8220;$&#8221;)<\/td><td>Enabled<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Layout Settings&nbsp;<em>(Pro)<\/em><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><th>Options<\/th><\/tr><\/thead><tbody><tr><td>Switcher Layout<\/td><td>How currencies are displayed<\/td><td>Dropdown \/ Button Group \/ Vertical List<\/td><\/tr><tr><td>Alignment<\/td><td>Horizontal alignment<\/td><td>Left \/ Center \/ Right<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Colors &amp; Styling<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><th>Default<\/th><\/tr><\/thead><tbody><tr><td>Background Color<\/td><td>Switcher background<\/td><td>#ffffff<\/td><\/tr><tr><td>Text Color<\/td><td>Text and labels<\/td><td>#1f2937<\/td><\/tr><tr><td>Border Color<\/td><td>Border around switcher<\/td><td>#e5e7eb<\/td><\/tr><tr><td>Hover Background<\/td><td>Background on hover<\/td><td>#f3f4f6<\/td><\/tr><tr><td>Hover Text Color<\/td><td>Text color on hover<\/td><td>#111827<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Flag Settings&nbsp;<em>(Pro)<\/em><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Options<\/th><\/tr><\/thead><tbody><tr><td>Flag Style<\/td><td>Circle \/ Square \/ Rounded<\/td><\/tr><tr><td>Flag Size<\/td><td>Small (16px) \/ Medium (24px) \/ Large (32px)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Auto Currency Tab&nbsp;<em>(Pro)<\/em><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">These Pro controls describe the intended location-based workflow. <strong>Current limitation:<\/strong> the normal dashboard settings do not fully connect to the legacy detection path. Use manual currency selection until that integration is corrected and tested.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Automatic Currency Detection<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><th>Default<\/th><\/tr><\/thead><tbody><tr><td>Enable Auto Currency<\/td><td>Automatically switch based on visitor location<\/td><td>Disabled<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Country to Currency Mapping<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Define which countries should display which currency:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click &#8220;Select a country to add&#8221;<\/li>\n\n\n\n<li>Choose the country from the dropdown<\/li>\n\n\n\n<li>Select which currency visitors from that country should see<\/li>\n\n\n\n<li>Repeat for each country you want to configure<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example Mappings:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Country<\/th><th>Currency<\/th><\/tr><\/thead><tbody><tr><td>United States<\/td><td>USD<\/td><\/tr><tr><td>United Kingdom<\/td><td>GBP<\/td><\/tr><tr><td>Germany<\/td><td>EUR<\/td><\/tr><tr><td>Japan<\/td><td>JPY<\/td><\/tr><tr><td>Australia<\/td><td>AUD<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Countries not in your mapping list will see the fallback currency.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Fallback Settings<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>Fallback Currency<\/td><td>Currency shown when visitor&#8217;s country is not mapped<\/td><\/tr><tr><td>Respect User Choice<\/td><td>Don&#8217;t auto-switch if visitor manually selected a currency<\/td><\/tr><tr><td>Remember Duration<\/td><td>Days to remember the user&#8217;s currency preference<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Detection Method<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Method<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>IP Detection<\/td><td>Uses visitor&#8217;s IP address to determine country<\/td><\/tr><tr><td>Browser<\/td><td>Uses browser language settings<\/td><\/tr><tr><td>Both<\/td><td>Tries IP first, falls back to browser<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">GeoIP Provider<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Provider<\/th><th>API Key Required<\/th><\/tr><\/thead><tbody><tr><td>IP-API<\/td><td>No (Free)<\/td><\/tr><tr><td>MaxMind GeoIP2<\/td><td>Yes<\/td><\/tr><tr><td>IP2Location<\/td><td>Yes<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Test Mode<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Enable test mode to simulate visitors from different countries:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>Test Mode<\/td><td>Enable location simulation<\/td><\/tr><tr><td>Test Country<\/td><td>Country code to simulate (e.g., &#8220;US&#8221;, &#8220;GB&#8221;)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Advanced Tab<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Automatic Exchange Rate Updates&nbsp;<em>(Pro)<\/em><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Current limitation:<\/strong> 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.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><th>Default<\/th><\/tr><\/thead><tbody><tr><td>Enable Auto Updates<\/td><td>Automatically fetch and update rates<\/td><td>Disabled<\/td><\/tr><tr><td>Update Interval<\/td><td>How often to update rates<\/td><td>Daily<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Update Interval Options:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Every Hour<\/li>\n\n\n\n<li>Once Daily<\/li>\n\n\n\n<li>Once Weekly<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Manual refresh:<\/strong> Select ExchangeRate-API, click <strong>Update Rates Now<\/strong>, inspect the returned rates, then click <strong>Save Changes<\/strong>. The fetch updates the dashboard draft; do not assume the new rates are saved until you save the settings.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Exchange Rate API&nbsp;<em>(Pro)<\/em><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Provider<\/th><th>API Key Required<\/th><th>Free Tier<\/th><\/tr><\/thead><tbody><tr><td>ExchangeRate-API<\/td><td>No<\/td><td>Yes<\/td><\/tr><tr><td>Open Exchange Rates<\/td><td>Yes<\/td><td>Yes<\/td><\/tr><tr><td>CurrencyLayer<\/td><td>Yes<\/td><td>Yes<\/td><\/tr><tr><td>Fixer.io<\/td><td>Yes<\/td><td>No<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For providers requiring an API key, enter your key in the &#8220;API Key&#8221; field.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cache Settings<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><th>Default<\/th><\/tr><\/thead><tbody><tr><td>Enable Cache<\/td><td>Cache converted prices for performance<\/td><td>Enabled<\/td><\/tr><tr><td>Cache Duration<\/td><td>How long to cache prices (seconds)<\/td><td>3600<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Cookie Settings<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><th>Default<\/th><\/tr><\/thead><tbody><tr><td>Cookie Duration<\/td><td>Days to remember user&#8217;s currency choice<\/td><td>30<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Shortcode Tab<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Usage<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Display the currency switcher anywhere using:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;swift_commerce_currency_switcher]<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Elementor Widget&nbsp;<em>(Pro)<\/em><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For Elementor users, a dedicated currency switcher widget is available:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Edit any page with Elementor<\/li>\n\n\n\n<li>Search for &#8220;Currency Switcher&#8221; in the widget panel<\/li>\n\n\n\n<li>Drag the widget to your page<\/li>\n\n\n\n<li>Customize appearance in the widget settings<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">How Price Conversion Works<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Base Price:<\/strong>&nbsp;Products are stored in your WooCommerce default currency<\/li>\n\n\n\n<li><strong>Exchange Rate:<\/strong>&nbsp;Applied to convert to target currency<\/li>\n\n\n\n<li><strong>Fee (Optional):<\/strong>&nbsp;Added as fixed amount or percentage<\/li>\n\n\n\n<li><strong>Rounding (Optional):<\/strong>&nbsp;Applied based on rounding settings<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Product price: $100.00 USD<\/li>\n\n\n\n<li>Exchange rate to EUR: 0.92<\/li>\n\n\n\n<li>Fee: 2%<\/li>\n\n\n\n<li>Rounding: Nearest 0.50<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Calculation: $100 \u00d7 0.92 = \u20ac92.00; add 2% to get \u20ac93.84, then round to the nearest \u20ac0.50 to get \u20ac94.00. A rounding increment is not the same as a \u201cprice ending in .99\u201d rule.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">WooCommerce Integration<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Price Conversion<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Product and variation price filters cover supported product browsing contexts. Test these storefront areas with your theme and pricing extensions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Product pages (single price, variations)<\/li>\n\n\n\n<li>Shop\/category pages<\/li>\n\n\n\n<li>Cart and checkout<\/li>\n\n\n\n<li>Final order and email amounts: verify against the saved order; do not assume historical orders are converted<\/li>\n\n\n\n<li>Mini cart widget<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Supported Price Types<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Price Type<\/th><th>Converted<\/th><\/tr><\/thead><tbody><tr><td>Regular Price<\/td><td>\u2713<\/td><\/tr><tr><td>Sale Price<\/td><td>\u2713<\/td><\/tr><tr><td>Variable Product Prices<\/td><td>\u2713<\/td><\/tr><tr><td>Shipping costs<\/td><td>Verify separately with the shipping method; product-price conversion is not proof of shipping conversion<\/td><\/tr><tr><td>Tax amounts<\/td><td>Verify in a real checkout with your tax configuration and payment gateway<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Using the current Currencies list<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use <strong>Add currency<\/strong> 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.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Per-currency editor<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Choose <strong>Fixed rate<\/strong> or <strong>Auto (API)<\/strong> 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\u20134), 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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Advanced limits and safeguards<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pro <strong>Auto Currency<\/strong> can detect or map a shopper\u2019s currency, set a fallback, and remember their preference. Pro <strong>Advanced<\/strong> controls automatic rate updates, provider and API key, caching, converted-price display, and preference-cookie duration. The Exclusions panel is marked <strong>Coming Soon<\/strong>; product and category exclusions are <\/p>\n\n\n\n\n\n<p class=\"wp-block-paragraph\">not currently active. Keep any API key private and verify the rate provider\u2019s terms before enabling automatic updates.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Check storefront and checkout<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Switch currencies on a product, cart, and checkout page. Compare a sample product price with the configured rate, fee, format, and rounding.<\/li>\n\n\n\n<li>Test a currency with a different decimal separator and a zero-decimal currency.<\/li>\n\n\n\n<li>Confirm the selected currency persists for the configured duration and that checkout behavior matches your chosen lock or fallback settings.<\/li>\n<\/ul>\n<h2 id=\"product-prices-pro\" class=\"wp-block-heading\">Product Prices (Pro)<\/h2>\n<p class=\"wp-block-paragraph\">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.<\/p>\n<h3 class=\"wp-block-heading\">Set a price in the product editor<\/h3>\n<ol class=\"wp-block-list\"><li>Enable Currency Switcher and save at least one enabled secondary currency.<\/li><li>Edit the product and open <strong>Product data \u2192 Currency Prices<\/strong>. For a variable product, open a standard variation under Variations and expand Currency Prices.<\/li><li>Expand a currency, enter <strong>Regular price<\/strong> and an optional <strong>Sale price<\/strong>, then optionally choose <strong>Sale starts<\/strong> and <strong>Sale ends<\/strong>. Dates are inclusive and use the WordPress site timezone.<\/li><li>Update the product or save its variations. Inspect the product in the selected currency.<\/li><\/ol>\n<figure class=\"wp-block-table\"><table><thead><tr><th>Value<\/th><th>Result<\/th><\/tr><\/thead><tbody><tr><td>Blank regular price<\/td><td>Convert the saved base regular price using the currency\u2019s rate, fee and rounding settings.<\/td><\/tr><tr><td>Fixed regular price, including 0<\/td><td>Use that currency amount without exchange-rate fees or rounding. Zero is an intentional price.<\/td><\/tr><tr><td>Blank sale price<\/td><td>Inherit an active base WooCommerce sale. With fixed regular pricing, preserve the base sale\u2019s percentage discount.<\/td><\/tr><tr><td>Fixed sale price<\/td><td>Use it while its optional date range is active. It must be lower than the effective regular price.<\/td><\/tr><tr><td>Both prices blank<\/td><td>Remove that currency\u2019s override without changing other currencies.<\/td><\/tr><\/tbody><\/table><\/figure>\n<p class=\"wp-block-paragraph\">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.<\/p>\n<h3 class=\"wp-block-heading\">Review and apply dashboard price changes<\/h3>\n<ol class=\"wp-block-list\"><li>Go to <strong>Swift Commerce \u2192 Currency Switcher \u2192 Product Prices<\/strong> and choose an enabled secondary currency.<\/li><li>Search by product name or browse pages. Standard variations have separate rows; unsupported product types are omitted.<\/li><li>Edit amounts and dates. Click <strong>Review price changes<\/strong>, inspect the before-and-after values, then <strong>Apply reviewed prices<\/strong>.<\/li><li>Price edits are saved by Apply reviewed prices, not the general header Save Changes button. Pricing policy separately uses <strong>Save pricing policy<\/strong>.<\/li><\/ol>\n<h3 class=\"wp-block-heading\">Use CSV without overwriting unreviewed prices<\/h3>\n<p class=\"wp-block-paragraph\"><strong>Export this page<\/strong> exports saved values for the current page and supplies the import template. Required headers are <code>product_id,currency,regular,sale,from,to,revision<\/code>. Retain IDs and revisions, use YYYY-MM-DD dates and preserve blank values. Import up to 100 rows \/ 1 MB with <strong>Import CSV for review<\/strong>. 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.<\/p>\n<h3 class=\"wp-block-heading\">Choose pricing precedence<\/h3>\n<p class=\"wp-block-paragraph\"><strong>Preserve adjustments on top of fixed prices<\/strong> 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. <strong>Use the fixed product price unchanged<\/strong> 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.<\/p>\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<h2 id=\"currency-pricing-checks\" class=\"wp-block-heading\">Verify the price before offering a currency<\/h2>\n\n\n<p class=\"wp-block-paragraph\">Automatic conversion follows this order: base product price \u00d7 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.<\/p>\n\n<ol class=\"wp-block-list\"><li>Choose one supported product and record its saved base price. Set a known secondary-currency rate, fee and rounding increment, then save.<\/li><li>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.<\/li><li>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.<\/li><li>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.<\/li><\/ol>\n\n<p class=\"wp-block-paragraph\">Use the <a href=\"https:\/\/swiftcommerce.io\/add-multiple-currencies-woocommerce-store\/\">multiple-currency tutorial<\/a> and <a href=\"https:\/\/swiftcommerce.io\/add-conversion-fees-woocommerce-currency-prices\/\">conversion-fee tutorial<\/a>. See <a href=\"https:\/\/swiftcommerce.io\/feature\/currency-switcher\/\">Currency Switcher features and edition differences<\/a> before choosing a plan.<\/p>\n\n\n\n<script type=\"application\/ld+json\" data-swift-commerce-documentation-schema=\"1\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/currencies\/currency-switcher\/#article\",\"url\":\"https:\/\/www.swiftcommerce.io\/help\/currencies\/currency-switcher\/\",\"headline\":\"Currency Switcher\",\"description\":\"Configure currencies, review manual exchange rates and conversion fees, and manage Pro product prices and sale schedules. Includes current automation limits.\",\"inLanguage\":\"en\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/currencies\/currency-switcher\/#webpage\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Swift Commerce\",\"url\":\"https:\/\/swiftcommerce.io\/\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/currencies\/currency-switcher\/#webpage\",\"url\":\"https:\/\/www.swiftcommerce.io\/help\/currencies\/currency-switcher\/\",\"name\":\"Currency Switcher\",\"description\":\"Configure currencies, review manual exchange rates and conversion fees, and manage Pro product prices and sale schedules. Includes current automation limits.\",\"inLanguage\":\"en\",\"breadcrumb\":{\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/currencies\/currency-switcher\/#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/currencies\/currency-switcher\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Documentation\",\"item\":\"https:\/\/www.swiftcommerce.io\/help\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Currencies\",\"item\":\"https:\/\/www.swiftcommerce.io\/help\/docs-category\/currencies\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Currency Switcher\",\"item\":\"https:\/\/www.swiftcommerce.io\/help\/currencies\/currency-switcher\/\"}]}]}<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Configure currencies, review manual exchange rates and conversion fees, and manage Pro product prices and sale schedules. Includes current automation limits.<\/p>\n","protected":false},"author":101,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[76],"doc_tag":[],"class_list":["post-3027","docs","type-docs","status-publish","hentry","doc_category-currencies"],"year_month":"2026-11","word_count":2024,"total_views":"139","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"name":"Mansoor Ahmad","author_nicename":"helpadmin","author_url":"https:\/\/www.swiftcommerce.io\/help\/author\/helpadmin\/"},"doc_category_info":[{"term_name":"Currencies","term_url":"https:\/\/www.swiftcommerce.io\/help\/docs-category\/currencies\/"}],"doc_tag_info":[],"knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs\/3027","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/users\/101"}],"replies":[{"embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/comments?post=3027"}],"version-history":[{"count":9,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs\/3027\/revisions"}],"predecessor-version":[{"id":3403,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs\/3027\/revisions\/3403"}],"wp:attachment":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/media?parent=3027"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/doc_category?post=3027"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/doc_tag?post=3027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}