Description
Baxtersweb Currency Switcher lets visitors choose a familiar currency and see converted prices across WordPress or WooCommerce. Your original stored prices stay unchanged, and WooCommerce continues to use its configured store currency for cart, checkout, orders and payments.
It is designed for multi-currency price display without a full multi-currency checkout system and works with WooCommerce prices, custom fields, shortcodes, templates and dynamic JavaScript values.
Display multiple currencies without changing original prices
Visitors select a display currency using a frontend currency switcher. The plugin converts supported price displays using the active exchange rate and remembers the visitor’s selection in a browser cookie.
The plugin does not:
- Rewrite stored product or custom-field prices
- Change the WooCommerce store currency
- Process payments in the selected display currency
- Change cart, checkout, order or account values
WordPress and WooCommerce price sources
Choose the workflow that matches your site:
Custom price values — convert numeric ACF fields, standard WordPress post meta or supplied values using the shortcode.
WooCommerce product prices — automatically convert standard shop and product price displays while WooCommerce continues to transact in the store currency.
WooCommerce is optional. ACF is also optional.
Visitor currency switcher
Place the switcher anywhere shortcodes are supported:
[bxtr_currency_switcher]
Optional label:
[bxtr_currency_switcher label="Currency:"]
Display codes, symbols and locally bundled SVG flags, with Basic, Clean and Pill switcher styles that remain easy to override with theme CSS.
Exchange rates and price control
The plugin retrieves daily European Central Bank (ECB) reference rates and stores the latest successful rate set in WordPress.
For each enabled currency, configure its symbol, percentage adjustment, optional manual rate, rounding, decimals and visitor availability. You can also choose the default display currency, switcher format and converted-price format.
Convert custom prices with shortcodes
Configured field on the current post:
[bxtr_currency]
Specific field:
[bxtr_currency field="itinerary_price"]
Specific post:
[bxtr_currency id="123"]
Supplied numeric value:
[bxtr_currency value="2450"]
WooCommerce product price in a custom template:
[bxtr_currency source="woocommerce" id="123"]
Add surrounding text when needed:
[bxtr_currency value="2450" prefix="From " suffix=" per person"]
JavaScript API for dynamic prices
Dynamic controls can use the same selected currency, rates, adjustments, rounding and formatting:
BXTRCurrency.convert(5000)
BXTRCurrency.format(5000)
BXTRCurrency.getCurrency()
BXTRCurrency.getConfig()
Useful for sliders, calculators and configurators where the underlying value remains in the site’s base currency.
WooCommerce display behaviour
Automatic WooCommerce conversion supports standard simple, sale and variable product price output on product and shop pages.
Cart, checkout, orders, payments and account pages remain in the WooCommerce store currency.
Some themes and builders bypass WooCommerce’s standard price output. In those cases, use the manual WooCommerce shortcode in the custom template.
Live Demo
Documentation
Support
For support, use the public support forum on WordPress.org.
External services
Baxtersweb Currency Switcher connects to the European Central Bank (ECB) to retrieve public daily reference exchange rates used for display conversion.
The plugin requests this fixed XML feed:
https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
The request is made from the WordPress website server when the plugin is activated, when an administrator selects Update rates now, and during the scheduled daily update when automatic updates are enabled.
The plugin does not add visitor details, WordPress user details, customer information, payment information, website content, selected currencies or custom query parameters to the request. Standard server connection information such as the requesting server’s IP address may be processed by the external service.
The returned public exchange-rate data and update timestamp are stored locally in WordPress. ECB reference rates are informational and may differ from commercial, card-provider or payment-gateway rates.
- ECB reference-rate feed: https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
- ECB disclaimer and copyright: https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html
- ECB privacy statement: https://www.ecb.europa.eu/services/privacy/html/index.en.html
By enabling and using exchange-rate conversion, the website makes requests to this external ECB service under the ECB’s applicable terms and privacy information.
Screenshots





Installation
- Install and activate the plugin.
- Open Tools > Currency Switcher and choose the price source.
- Configure the base currency, visitor currencies and display settings.
- Add
[bxtr_currency_switcher]for the switcher. - Add
[bxtr_currency]for custom values, or enable automatic WooCommerce price replacement. - Test at least two currencies on the frontend.
FAQ
-
Does this change my original prices?
-
No. The plugin converts supported values for display. The original product price, custom-field value or supplied base value remains unchanged.
-
Does this change the WooCommerce checkout currency?
-
No. Cart, checkout, orders, payments and account pages continue to use the WooCommerce store currency.
-
Is this a full multi-currency checkout plugin?
-
No. It focuses on display conversion while the site keeps one base price and, when applicable, one WooCommerce transaction currency.
-
Is WooCommerce required?
-
No. You can convert direct numeric amounts, ACF fields or standard WordPress custom fields without WooCommerce.
-
Is ACF required?
-
No. If ACF is active, the plugin can retrieve values through ACF. Otherwise it can read the configured field from standard WordPress post meta.
-
Where do exchange rates come from?
-
The plugin retrieves the European Central Bank’s daily reference-rate XML feed and stores the last successful rates in WordPress.
-
Can I adjust the exchange rate?
-
Yes. Each currency can use a percentage adjustment, manual rate, rounding increment and chosen number of decimal places. A manual rate replaces the calculated ECB cross-rate for that currency before the configured percentage adjustment is applied.
-
The plugin keeps using the last successfully stored rates. A failed update does not delete the previous rate set.
-
Why is a converted price not appearing?
-
Check that the source is numeric, the correct field or post ID is used, the target currency is enabled and valid rates are stored. The Tools tab also shows frontend detection status.
-
Why does a cached page show the previous currency?
-
Full-page caching varies between hosts and cache plugins. Exclude affected pages from full-page caching or configure the cache to vary by the
bxtr_cdc_currencycookie ordisplay_currencyquery parameter. -
Does the plugin remember the visitor’s currency?
-
Yes. The selected enabled currency code is stored in the
bxtr_cdc_currencybrowser cookie for up to one year.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Baxtersweb Currency Switcher – Display Prices in Multiple Currencies” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Baxtersweb Currency Switcher – Display Prices in Multiple Currencies” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.3.6
- Renamed and repositioned the plugin as Currency Switcher with clearer display-only multi-currency messaging.
- Added
[bxtr_currency_switcher]as the standard currency switcher shortcode. - Standardised the admin header against the Baxtersweb brand and moved Version 0.3.6 beside the Help control.
- Reworked the WordPress.org readme, tags, FAQ and feature hierarchy.
- Shortened the WordPress admin page URL to
tools.php?page=currency-switcher. - Reordered the switcher display settings for a clearer setup flow.
- Kept existing plugin identifiers, stored settings and conversion behaviour unchanged.
0.3.5
- Added a public frontend JavaScript API for converting and formatting dynamic numeric values.
- Added
BXTRCurrency.convert(),BXTRCurrency.format(),BXTRCurrency.getCurrency()andBXTRCurrency.getConfig(). - Added a
bxtr:currency-changebrowser event while preserving the existing selector reload behaviour.
0.3.4
- Refined the admin interface and reorganised Setup, Tools and Settings.
- Added Basic, Clean and Pill switcher styles with a live admin preview.
- Improved the currency configuration table and Add Currency workflow.
- Updated WordPress 7.1 compatibility information and resolved Plugin Check findings.
