{"id":359274,"date":"2026-08-28T12:55:49","date_gmt":"2026-08-28T12:55:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/u2code-product-multicurrency-for-woocommerce\/"},"modified":"2026-08-28T12:55:17","modified_gmt":"2026-08-28T12:55:17","slug":"u2code-product-multicurrency-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/u2code-product-multicurrency-for-woocommerce\/","author":16290396,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"U2Code Product Multicurrency for WooCommerce","header_author":"U2Code","header_description":"Sell in multiple currencies \u2014 automatic exchange rates, geolocation detection, per-currency price rules and a customizable storefront switcher.","assets_banners_color":"7daac9","last_updated":"2026-08-28 12:55:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/u2code.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":39,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"bycrik","date":"2026-08-28 12:55:17","revision":3670373}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3670373,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3670373,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3670373,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3670373,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"u2code-multicurrency\/switcher":{"name":"u2code-multicurrency\/switcher","title":"Currency Switcher"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3670373,"resolution":"1","location":"assets","locale":"","width":2442,"height":1664},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3670373,"resolution":"2","location":"assets","locale":"","width":2042,"height":1738},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3670373,"resolution":"3","location":"assets","locale":"","width":1882,"height":1420},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3670373,"resolution":"4","location":"assets","locale":"","width":2782,"height":1742},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3670373,"resolution":"5","location":"assets","locale":"","width":2530,"height":1500},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3670373,"resolution":"6","location":"assets","locale":"","width":1982,"height":1676},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3670373,"resolution":"7","location":"assets","locale":"","width":1808,"height":978}},"screenshots":{"1":"All your currencies in one table \u2014 automatic rates, manual overrides, fees and switcher order.","2":"Per-currency settings: automatic or manual rate, fees, symbol and formatting overrides.","3":"Automatic exchange rates from ECB, Frankfurter, FloatRates, Open Exchange Rates or Fixer.","4":"Design the switcher next to a live storefront preview \u2014 the sample price converts with your real rates.","5":"Behavior in plain language: geolocation, URL switching, checkout currency and cache compatibility.","6":"The floating switcher on the storefront \u2014 five styles, flag emojis, no jQuery.","7":"The switcher right under the price on the product page."}},"plugin_section":[],"plugin_tags":[8504,21294,24514,129372,286],"plugin_category":[45],"plugin_contributors":[161125,78154],"plugin_business_model":[],"class_list":["post-359274","plugin","type-plugin","status-publish","hentry","plugin_tags-currency","plugin_tags-currency-switcher","plugin_tags-multi-currency","plugin_tags-multicurrency","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-bycrik","plugin_contributors-freemius","plugin_committers-bycrik"],"banners":{"banner":"https:\/\/ps.w.org\/u2code-product-multicurrency-for-woocommerce\/assets\/banner-772x250.png?rev=3670373","banner_2x":"https:\/\/ps.w.org\/u2code-product-multicurrency-for-woocommerce\/assets\/banner-1544x500.png?rev=3670373","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/u2code-product-multicurrency-for-woocommerce\/assets\/icon-128x128.png?rev=3670373","icon_2x":"https:\/\/ps.w.org\/u2code-product-multicurrency-for-woocommerce\/assets\/icon-256x256.png?rev=3670373","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/u2code-product-multicurrency-for-woocommerce\/assets\/screenshot-1.png?rev=3670373","caption":"All your currencies in one table \u2014 automatic rates, manual overrides, fees and switcher order."},{"src":"https:\/\/ps.w.org\/u2code-product-multicurrency-for-woocommerce\/assets\/screenshot-2.png?rev=3670373","caption":"Per-currency settings: automatic or manual rate, fees, symbol and formatting overrides."},{"src":"https:\/\/ps.w.org\/u2code-product-multicurrency-for-woocommerce\/assets\/screenshot-3.png?rev=3670373","caption":"Automatic exchange rates from ECB, Frankfurter, FloatRates, Open Exchange Rates or Fixer."},{"src":"https:\/\/ps.w.org\/u2code-product-multicurrency-for-woocommerce\/assets\/screenshot-4.png?rev=3670373","caption":"Design the switcher next to a live storefront preview \u2014 the sample price converts with your real rates."},{"src":"https:\/\/ps.w.org\/u2code-product-multicurrency-for-woocommerce\/assets\/screenshot-5.png?rev=3670373","caption":"Behavior in plain language: geolocation, URL switching, checkout currency and cache compatibility."},{"src":"https:\/\/ps.w.org\/u2code-product-multicurrency-for-woocommerce\/assets\/screenshot-6.png?rev=3670373","caption":"The floating switcher on the storefront \u2014 five styles, flag emojis, no jQuery."},{"src":"https:\/\/ps.w.org\/u2code-product-multicurrency-for-woocommerce\/assets\/screenshot-7.png?rev=3670373","caption":"The switcher right under the price on the product page."}],"raw_content":"<!--section=description-->\n<p>U2Code Product Multicurrency lets your WooCommerce store display prices and accept payments in any number of currencies.<\/p>\n\n<p><strong>Currencies &amp; rates<\/strong><\/p>\n\n<ul>\n<li>Unlimited currencies, ordered the way you want them in the switcher<\/li>\n<li>Automatic exchange rates from ECB, Frankfurter, FloatRates (free, no key), Open Exchange Rates or Fixer<\/li>\n<li>Hourly to weekly update schedule, or manual-only, with an \"Update now\" button<\/li>\n<li>Manual rate override per currency \u2014 automatic updates never touch it<\/li>\n<li>Percentage fee (markup) and fixed fee per currency<\/li>\n<li>Price rounding per currency: to the nearest\/up\/down step (0.01 \u2026 100) plus charm endings (19.99) \u2014 with a live preview while you configure<\/li>\n<li>Per-currency symbol, symbol position, decimals and separators \u2014 zero-decimal currencies like JPY handled correctly<\/li>\n<li>If a rate is ever missing or broken, prices fall back to the base currency \u2014 never to zero<\/li>\n<\/ul>\n\n<p><strong>Detection &amp; switching<\/strong><\/p>\n\n<ul>\n<li>Currency switcher everywhere you need it: Gutenberg block (works in Site Editor headers), shortcode <code>[u2code_currency_switcher]<\/code>, classic widget, floating panel, navigation menu items (any number of menus, with a currency submenu), under the price on product pages, and an Elementor widget \u2014 five styles (dropdown, buttons, native select, flags only, text links), with flag emojis (no image sprites)<\/li>\n<li>Geolocation: map countries to currencies and first-time visitors see their local one (crawlers always get the base currency)<\/li>\n<li>The visitor's choice is remembered in a cookie; <code>?currency=EUR<\/code> links switch too<\/li>\n<li>Cache compatibility mode: prices are re-drawn in the browser on cached pages; WP Rocket cookie registration built in<\/li>\n<\/ul>\n\n<p><strong>Checkout &amp; orders<\/strong><\/p>\n\n<ul>\n<li>Choose: customers pay in the selected currency, or the checkout always charges the base currency (display-only switching)<\/li>\n<li>Every order stores the currency, the exchange rate at purchase time and the total in your base currency<\/li>\n<li>WooCommerce Analytics reads coherent base-currency numbers \u2014 reports never mix currencies<\/li>\n<li>The order-pay page always charges the order's own currency<\/li>\n<\/ul>\n\n<p><strong>Compatible by design<\/strong><\/p>\n\n<ul>\n<li>HPOS and Cart\/Checkout Blocks compatible, Store API aware<\/li>\n<li>Shipping costs, fixed-amount coupons, coupon limits and free-shipping thresholds are all converted<\/li>\n<li>Ships integrations for Tiered Pricing Table, U2Code Product Addons, Elementor and WP Rocket \u2014 each can be toggled off<\/li>\n<li>Extensive hooks for developers (see DEVELOPERS.md in the plugin folder)<\/li>\n<\/ul>\n\n<p><strong>Premium<\/strong><\/p>\n\n<ul>\n<li>Fixed per-product prices per currency (simple products and variations) that replace the calculated conversion<\/li>\n<li>Restrict payment gateways per currency<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin can fetch currency exchange rates from an external service. It only contacts the one provider you select under WooCommerce \u2192 Settings \u2192 Multicurrency \u2192 Exchange Rates, on the schedule you choose there (or when you press \"Update rates now\"). The request is made from your server and contains only the currency codes you configured \u2014 plus your own API key for the providers that require one. No visitor data and no personal data is ever sent.<\/p>\n\n<p>Available rate providers:<\/p>\n\n<ul>\n<li><strong>European Central Bank (ECB)<\/strong> \u2014 free daily reference rates, no account needed. <a href=\"https:\/\/www.ecb.europa.eu\/services\/disclaimer\/html\/index.en.html\">Disclaimer and copyright<\/a><\/li>\n<li><strong>Frankfurter<\/strong> \u2014 free open-source exchange-rate API, no key and no account needed. <a href=\"https:\/\/frankfurter.dev\/\">Website and documentation<\/a><\/li>\n<li><strong>FloatRates<\/strong> \u2014 free exchange-rate feeds, no account needed. FloatRates does not publish separate terms or privacy pages; see <a href=\"https:\/\/www.floatrates.com\/page.php?page=about\">About FloatRates<\/a><\/li>\n<li><strong>Open Exchange Rates<\/strong> \u2014 requires an App ID that you create with them. <a href=\"https:\/\/openexchangerates.org\/terms\">Terms of service<\/a>, <a href=\"https:\/\/openexchangerates.org\/privacy\">Privacy policy<\/a><\/li>\n<li><strong>Fixer<\/strong> \u2014 requires an access key that you create with them. <a href=\"https:\/\/fixer.io\/terms\">Terms of service<\/a>, <a href=\"https:\/\/fixer.io\/privacy\">Privacy policy<\/a><\/li>\n<\/ul>\n\n<p>If \"Detect currency by visitor location\" is enabled, the visitor's country is determined by WooCommerce's built-in geolocation on your own server. This plugin does not send visitor data to any external geolocation service.<\/p>\n\n<h3>Source code &amp; build<\/h3>\n\n<p>The admin app in <code>assets\/admin\/<\/code> is compiled with @wordpress\/scripts (webpack) from the human-readable sources shipped in <code>js-source\/<\/code>. To rebuild it:<\/p>\n\n<pre><code>cd js-source &amp;&amp; npm install &amp;&amp; npm run build\n<\/code><\/pre>\n\n<p>All other JavaScript and CSS in <code>assets\/<\/code> is hand-written; <code>.min<\/code> files are generated from the adjacent source file of the same name.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20configure%20it%3F\"><h3>Where do I configure it?<\/h3><\/dt>\n<dd><p>WooCommerce \u2192 Settings \u2192 Multicurrency. Add currencies, pick a rate provider, choose the checkout behavior and the switcher design.<\/p><\/dd>\n<dt id=\"do%20rates%20update%20automatically%3F\"><h3>Do rates update automatically?<\/h3><\/dt>\n<dd><p>Yes \u2014 pick a provider and a schedule on the Exchange Rates tab. Currencies set to \"Manual\" keep their rate forever.<\/p><\/dd>\n<dt id=\"can%20i%20set%20exact%20prices%20per%20currency%20for%20one%20product%3F\"><h3>Can I set exact prices per currency for one product?<\/h3><\/dt>\n<dd><p>With Premium, yes. Each product (and each variation) gets fixed-price fields per currency; a fixed price replaces the calculated conversion, and the values are kept even if you switch back to automatic conversion.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20a%20page%20cache%3F\"><h3>Does it work with a page cache?<\/h3><\/dt>\n<dd><p>Yes. With WP Rocket the currency cookie is registered automatically. For other full-page caches enable \"Cache compatibility mode\" in Behavior \u2014 prices are then refreshed in the browser after the cached page loads.<\/p><\/dd>\n<dt id=\"which%20currency%20do%20reports%20use%3F\"><h3>Which currency do reports use?<\/h3><\/dt>\n<dd><p>Orders keep the currency the customer paid in, and also store the rate and base-currency total. WooCommerce Analytics receives amounts converted to your base currency, so revenue reports stay coherent.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Sell in multiple currencies \u2014 automatic exchange rates, geolocation detection, per-currency price rules and a customizable storefront switcher.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/359274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=359274"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bycrik"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=359274"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=359274"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=359274"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=359274"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=359274"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=359274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}