Multi Currency Switcher for WooCommerce

Plugin Banner

Multi Currency Switcher for WooCommerce

by WebTend

Download
Description

Multi Currency Switcher for WooCommerce lets your store display and process prices in multiple currencies — fast, clean, and conversion-focused. Built for modern WordPress stores without the bloat.

Sell globally with confidence. Visitors see prices in their local currency automatically, switch currencies with a single click, and checkout in the currency they trust.

📖 Full Documentation

🌍 Why Multi Currency Switcher?

Most multi-currency plugins are bloated, ship with telemetry SDKs, or lock core features behind a paywall. Multi Currency Switcher for WooCommerce is different:

  • Lightweight — no unnecessary code, no jQuery dependency for the UI
  • Zero telemetry — no data ever sent to our servers, no Appsero, no analytics SDKs
  • Fully functional — every feature works out of the box, nothing locked
  • Modern — built for WooCommerce HPOS, block Cart/Checkout, and FSE block themes

✅ Core Features

Multi-Currency Support
Display and process orders in 150+ ISO 4217 currencies. Enable as many currencies as your store needs from a searchable admin grid with flag emojis.

Auto Exchange Rates
Rates are fetched automatically from the European Central Bank (free, no API key required) or Open Exchange Rates. Cached in transients and a resilient database table — rates are always available even if the API is temporarily down.

GeoIP Auto-Detection
On a visitor’s first page load, the plugin detects their country and automatically sets their local currency. The result is stored in a 30-day cookie — zero repeat API calls, zero impact on performance.

Two Switcher Modes
Full Mode — prices, cart, shipping, and checkout all process in the selected currency. Orders are saved with the customer’s currency.
Visual Mode — display prices in any currency on the storefront but charge in your store’s base currency at checkout. Ideal for stores that cannot process multi-currency payments.

Per-Product Fixed Prices
Override the auto-converted price with an exact fixed amount for any product and any currency. Set a fixed USD price, a fixed EUR price, and a fixed BDT price independently — all from the product edit page.

Smart Price Rounding
Four rounding presets to make converted prices look natural:
Exact — precise decimal conversion
Round — round to nearest whole number
Charm — always end in .95 (e.g. 29.95)
.99 Pricing — always end in .99 (e.g. 29.99)

Currency Switcher — 2 Styles
Dropdown — a compact dropdown button with the active currency, expands to list all options
Button group — all currencies displayed as inline buttons

Both styles support flag emoji display, multiple label formats (symbol, code, symbol + code, full name), and are fully keyboard navigable with proper ARIA roles.

Shortcode
Place the switcher anywhere with [storzen_currency_switcher]. Supports style, show_flag, and class parameters.

Classic Widget
Drag the Multi Currency Switcher widget into any sidebar or footer area from Appearance Widgets.

Accessible & Keyboard-Friendly
– Full keyboard navigation (arrow keys, Enter, Escape, Tab)
– ARIA listbox and aria-pressed roles
– Focus management and roving tabindex
– Screen-reader labels on every interactive element

⚡ Performance

  • Frontend CSS and JS only load when 2+ currencies are enabled
  • Exchange rates cached in WordPress transients (configurable 1–48 hour interval)
  • Database fallback table ensures rates are always available offline
  • GeoIP result stored in a visitor cookie — no server-side per-IP storage
  • WooCommerce variation price hash modified per currency — no stale cached prices served

🔒 Privacy & GDPR

  • No personal data stored — the plugin does not log IPs or personal information
  • GeoIP detection uses the visitor’s IP only to return a country code — the IP is not stored by the plugin
  • Cookie set with SameSite=Lax, Secure on HTTPS, and HttpOnly for the country detection cookie
  • Zero outbound data to Storzen servers

🔧 Developer Hooks

Extend the plugin without editing core files. All hooks are prefixed storzen_cs_:

  • storzen_cs_enabled_currencies (filter) — modify the list of enabled currency codes
  • storzen_cs_rate (filter) — filter the exchange rate between any two currencies
  • storzen_cs_convert_price (filter) — filter the converted price before display
  • storzen_cs_geoip_country (filter) — override or disable the GeoIP-detected country
  • storzen_cs_switcher_html (filter) — filter the complete switcher HTML output
  • storzen_cs_currency_switched (action) — fires after a visitor switches currency

📖 Developer documentation

🧩 Compatibility

  • ✅ WooCommerce 7.0+
  • ✅ WordPress 6.3+
  • ✅ HPOS (High-Performance Order Storage)
  • ✅ WooCommerce Cart & Checkout Blocks
  • ✅ Block themes & Full Site Editor (FSE)
  • ✅ Classic themes
  • ✅ WPML & Polylang
  • ✅ Elementor, Divi, Bricks, Kadence, Astra

External Services

This plugin connects to the following external services. All connections are optional and user-controlled from the plugin settings.

1. European Central Bank (ECB) — Default rate source
* Endpoint: https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
* When used: when “European Central Bank” is selected as the rate source (default setting)
* Data sent: none — this is a public XML feed, no personal data is transmitted
* Privacy policy: https://www.ecb.europa.eu/home/privacy/html/index.en.html
* Terms of use: https://www.ecb.europa.eu/home/disclaimer/html/index.en.html

2. Open Exchange Rates — Optional rate source
* Endpoint: https://openexchangerates.org/api/latest.json
* When used: only when “Open Exchange Rates” is selected and an API key is entered by the administrator
* Data sent: your API key as a URL query parameter
* Privacy policy: https://openexchangerates.org/privacy
* Terms of use: https://openexchangerates.org/terms

3. country.is — GeoIP detection
* Endpoint: https://api.country.is/
* When used: only when GeoIP auto-detect is enabled (can be disabled in settings), and only on a visitor’s very first page load — the result is stored in a cookie for 30 days
* Data sent: the visitor’s IP address (sent as part of a standard HTTP request — not stored by this plugin)
* Privacy policy: https://country.is/

No data is ever sent to Storzen servers.

From the WordPress Plugin Directory (recommended):

  1. Go to Plugins Add New in your WordPress admin
  2. Search for “Multi Currency Switcher for WooCommerce”
  3. Click Install Now, then Activate

Manual installation:

  1. Download the .zip file
  2. Go to Plugins Add New Upload Plugin
  3. Select the .zip file and click Install Now, then Activate

Setup (takes 2 minutes):

  1. Go to Currency Switcher in the WordPress left-hand menu
  2. On the General tab — select your mode (Full or Visual) and enable currencies
  3. On the Exchange Rates tab — choose your rate source (ECB is free, no key needed)
  4. Add the switcher using the shortcode, widget, or template tag
  5. Done ✓

📖 Full setup guide

  1. Admin — General tab with mode selector, GeoIP toggle, and searchable currency grid

    Admin — General tab with mode selector, GeoIP toggle, and searchable currency grid

  2. Admin — Display tab with live mock-storefront preview that updates instantly

    Admin — Display tab with live mock-storefront preview that updates instantly

  3. Admin — Exchange Rates tab with source cards and manual refresh button

    Admin — Exchange Rates tab with source cards and manual refresh button

  4. Admin — Usage tab with shortcode reference and copy buttons

    Admin — Usage tab with shortcode reference and copy buttons

Does this work with the WooCommerce block Cart and Checkout?

Yes. The plugin is declared compatible with WooCommerce Cart and Checkout Blocks. In Full Mode, prices convert throughout the entire block-based checkout experience.

Is the European Central Bank rate source really free?

Yes — completely free. The ECB publishes daily exchange rates as a public XML feed. No registration, no API key, and no usage limits. Rates update every business day.

What is Visual Mode?

Visual Mode displays prices in the visitor’s selected currency throughout your store but processes the actual payment in your store’s base currency. It is ideal for stores that cannot process true multi-currency payments but want to show local currency prices to international customers.

Does GeoIP detection slow down my site?

No. The geolocation result is stored in a cookie for 30 days after the very first visit. No external API call is made on any subsequent page load. The initial detection call uses a 3-second timeout and has no impact on rendering performance.

Can I set different prices per currency per product?

Yes — and there is no limit. Open any product’s edit page, go to the Currency Prices tab, and enter a fixed price for each enabled currency. Leave it blank to use the auto-converted rate.

Is this compatible with WPML or Polylang?

Yes. The plugin works alongside both multilingual plugins without conflicts. Currency settings are completely independent of language settings.

How do I add the switcher to my store?

Three ways:
1. Shortcode — paste [storzen_currency_switcher] anywhere in a page, post, or template
2. Widget — go to Appearance Widgets and drag Multi Currency Switcher to any sidebar
3. PHP<?php echo do_shortcode('[storzen_currency_switcher]'); ?>

Does it support variable products?

Yes. The plugin modifies the WooCommerce variation price cache hash per currency, so the correct converted prices are always served for variable products.

Will it work with my theme?

Yes. The plugin is designed to work with any properly coded WordPress theme — block themes, classic themes, and page builder themes (Elementor, Divi, Bricks, Kadence, Astra, GeneratePress, and more).

Is any customer data sent to Storzen?

No. Zero customer or store data is ever sent to Storzen servers. No analytics, no telemetry, and no third-party tracking SDKs are included in this plugin.

Where can I find the documentation?

Full documentation is available at: https://webtend.net/docs/multicurrency%20-Switcher-docs.html

1.0.0

  • Initial release.
  • 150+ ISO 4217 currencies with symbols, flag emojis, and country mapping.
  • Auto exchange rates from European Central Bank (free) and Open Exchange Rates.
  • Transient cache + database table two-layer rate resilience.
  • WP-Cron auto-refresh at configurable intervals (1–48 hours).
  • GeoIP auto-detection via privacy-friendly API — result stored in cookie only, no server-side IP storage.
  • Full Mode: prices, cart, shipping, and orders all in the selected currency.
  • Visual Mode: display-only conversion, checkout in base currency.
  • Per-product fixed price meta box — all currencies, no restrictions.
  • Smart rounding presets: exact, round, charm (.95), .99 pricing.
  • Shortcode [storzen_currency_switcher] with style and show_flag parameters.
  • Dropdown and button-group switcher styles with full keyboard and ARIA support.
  • Classic WordPress sidebar widget.
  • Modern 4-tab admin settings panel with standalone WordPress menu entry.
  • Display tab with live mock-storefront preview.
  • Searchable currency grid in admin.
  • HPOS (High-Performance Order Storage) declared compatible.
  • WooCommerce Cart and Checkout Blocks declared compatible.
  • Zero telemetry — no Appsero, no third-party SDKs, no outbound data.
  • Full PHPCS/WPCS compliance — 0 errors, 0 warnings.
Back to top