Ston Currency Switcher shows every price, cart and checkout in your shopper’s own currency — unlimited currencies, automatic exchange rates and a switcher that updates the page without a reload.
Live demo
Features
Add as many as you like. Each has its own exchange rate, optional fee, rounding rule, symbol position, decimals and separators — plus fixed prices on any product or variation.
Pills, dropdown, select box or inline links, with codes, symbols, names and flags. Place it by shortcode, Elementor widget, classic widget, menu item or a floating button.
Checkout in the customer’s currency or always in yours. Coupons, minimum spend, shipping and the free-shipping threshold are converted too.
No jQuery on the front end, one small script loaded only where a switcher is shown, no database queries per price, and a separate cached copy per currency.
01 / How it works
You manage every price in your WooCommerce store currency. Ston Currency converts at display time, so nothing in your catalogue is rewritten and switching the plugin off leaves the store exactly as it was.
Base currency
your WooCommerce currency — prices are stored and edited in it only
Conversion
price × rate × (1 + fee %) → rounding rule → currency format
Fixed prices
optional per product and per variation, overrides the rate
Visitor choice
switcher → cookie ston_currency · or ?currency=AED in the address
First visit
default currency per country (Cloudflare header or WooCommerce MaxMind)
Switching
?wc-ajax=ston_currency_switch — prices, cart and mini cart refresh in place
Checkout
in the customer’s currency, or forced to the store currency for your gateway
02 / Exchange rates
Each currency can follow the live rate or keep a rate you set by hand. A fee covers conversion costs; a rounding rule keeps prices looking deliberate.
Source
open.er-api.com — free, no API key
Schedule
twice a day through WP-Cron, or “Update rates now”
Manual rate
per currency, never overwritten by the update
Fee
optional % per currency, added after conversion
Rounding
none · whole number · round up · charm (x.99) · nearest 5 · nearest 10
Format
symbol, symbol position, decimals, thousand and decimal separators
03 / Placement
Every placement renders the same accessible markup: keyboard navigation, visible focus and reduced-motion support.
[ston_currency_switcher]
style="pills|dropdown|select|links" label="code|symbol|code_symbol|name|name_code" flags="yes" show="all|store"
[ston_price amount="49"]
any store-currency amount in the visitor’s currency; aed="179" fixes it per currency
Elementor widget
Ston Currency Switcher, with the same options in the panel
Classic widget
for sidebars and footers of non-Elementor themes
Menu item
appended to the menu location you choose
Floating button
a corner switcher on every page, no theme edits
04 / Extension points
Change behaviour from your own code without touching the plugin.
ston_currency_current
filter — the currency of a request
ston_currency_converted_amount
filter — adjust a converted amount
ston_currency_switcher_html
filter — change the switcher markup
ston_currency_ajax_regions
filter — page parts refreshed after a switch
ston_currency_is_store_page
filter — where “store pages only” shows the switcher
ston_currency_rates_url
filter — use another exchange-rate source
ston_currency_fetched_rates
filter — inspect or correct fetched rates
ston_currency_switched
action — after a visitor switches currency
05 / Compatibility
Tested against the parts of WooCommerce that usually break currency plugins.
Cart & checkout
classic shortcodes and the block cart / checkout
Orders
HPOS (custom order tables) and legacy post storage
APIs
Store API responses follow the visitor’s currency
Products
simple and variable, with per-variation fixed prices
Caching
WP Rocket and LiteSpeed Cache keep a copy per currency
Clean exit
uninstall removes its options; your products are untouched
06 / Set it up
Upload the zip under Plugins → Add New. WooCommerce must be active; the base currency comes from its settings.
Ston Currency → Currencies. Add codes, choose automatic or manual rates, set fee, rounding and format.
Shortcode, Elementor widget, menu item or floating button — on every page or on store pages only.
Charge in the customer’s currency, or keep checkout in your store currency if your gateway needs it.
07 / Requirements