{"id":322190,"date":"2026-06-08T02:14:43","date_gmt":"2026-06-08T02:14:43","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/storzen-multi-currency-switcher-for-woocommerce\/"},"modified":"2026-07-02T03:25:50","modified_gmt":"2026-07-02T03:25:50","slug":"storzen-multi-currency-switcher-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/mg.wordpress.org\/plugins\/storzen-multi-currency-switcher-for-woocommerce\/","author":15779958,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.0.2","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Storzen Multi Currency Switcher for WooCommerce","header_author":"WebTend","header_description":"Lightweight multi-currency switcher for WooCommerce. Auto exchange rates, GeoIP detection, visual-only or full checkout mode, per-product pricing, and smart rounding \u2014 zero bloat, zero telemetry.","assets_banners_color":"9192a0","last_updated":"2026-07-02 03:25:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/webtend.net\/currency-switcher-for-woocommerce","header_author_uri":"https:\/\/profiles.wordpress.org\/devhasib\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":206,"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":"devhasib","date":"2026-06-08 03:48:53"},"1.1.0":{"tag":"1.1.0","author":"devhasib","date":"2026-07-02 03:25:50"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3564051,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3564042,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3564042,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3564042,"resolution":"1","location":"assets","locale":"","width":1673,"height":835},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3564042,"resolution":"2","location":"assets","locale":"","width":1690,"height":834},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3564042,"resolution":"3","location":"assets","locale":"","width":1684,"height":828},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3564042,"resolution":"4","location":"assets","locale":"","width":1700,"height":828}},"screenshots":{"1":"Admin \u2014 General tab with mode selector, GeoIP toggle, and searchable currency grid","2":"Admin \u2014 Display tab with live mock-storefront preview that updates instantly","3":"Admin \u2014 Exchange Rates tab with source cards and manual refresh button","4":"Admin \u2014 Usage tab with shortcode reference and copy buttons"}},"plugin_section":[],"plugin_tags":[8504,21294,16558,24514,286],"plugin_category":[45],"plugin_contributors":[259418],"plugin_business_model":[],"class_list":["post-322190","plugin","type-plugin","status-publish","hentry","plugin_tags-currency","plugin_tags-currency-switcher","plugin_tags-exchange-rate","plugin_tags-multi-currency","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-devhasib","plugin_committers-devhasib"],"banners":{"banner":"https:\/\/ps.w.org\/storzen-multi-currency-switcher-for-woocommerce\/assets\/banner-772x250.png?rev=3564042","banner_2x":"https:\/\/ps.w.org\/storzen-multi-currency-switcher-for-woocommerce\/assets\/banner-1544x500.png?rev=3564042","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/storzen-multi-currency-switcher-for-woocommerce\/assets\/icon-256x256.png?rev=3564051","icon_2x":"https:\/\/ps.w.org\/storzen-multi-currency-switcher-for-woocommerce\/assets\/icon-256x256.png?rev=3564051","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/storzen-multi-currency-switcher-for-woocommerce\/assets\/screenshot-1.png?rev=3564042","caption":"Admin \u2014 General tab with mode selector, GeoIP toggle, and searchable currency grid"},{"src":"https:\/\/ps.w.org\/storzen-multi-currency-switcher-for-woocommerce\/assets\/screenshot-2.png?rev=3564042","caption":"Admin \u2014 Display tab with live mock-storefront preview that updates instantly"},{"src":"https:\/\/ps.w.org\/storzen-multi-currency-switcher-for-woocommerce\/assets\/screenshot-3.png?rev=3564042","caption":"Admin \u2014 Exchange Rates tab with source cards and manual refresh button"},{"src":"https:\/\/ps.w.org\/storzen-multi-currency-switcher-for-woocommerce\/assets\/screenshot-4.png?rev=3564042","caption":"Admin \u2014 Usage tab with shortcode reference and copy buttons"}],"raw_content":"<!--section=description-->\n<p><strong>Multi Currency Switcher for WooCommerce<\/strong> lets your store display and process prices in multiple currencies \u2014 fast, clean, and conversion-focused. Built for modern WordPress stores without the bloat.<\/p>\n\n<p>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.<\/p>\n\n<p>\ud83d\udcd6 <strong><a href=\"https:\/\/webtend.net\/docs\/multicurrency%20-Switcher-docs.html\">Full Documentation<\/a><\/strong><\/p>\n\n\n\n<h4>\ud83c\udf0d Why Multi Currency Switcher?<\/h4>\n\n<p>Most multi-currency plugins are bloated, ship with telemetry SDKs, or lock core features behind a paywall. Multi Currency Switcher for WooCommerce is different:<\/p>\n\n<ul>\n<li><strong>Lightweight<\/strong> \u2014 no unnecessary code, no jQuery dependency for the UI<\/li>\n<li><strong>Zero telemetry<\/strong> \u2014 no data ever sent to our servers, no Appsero, no analytics SDKs<\/li>\n<li><strong>Fully functional<\/strong> \u2014 every feature works out of the box, nothing locked<\/li>\n<li><strong>Modern<\/strong> \u2014 built for WooCommerce HPOS, block Cart\/Checkout, and FSE block themes<\/li>\n<\/ul>\n\n\n\n<h4>\u2705 Core Features<\/h4>\n\n<p><strong>Multi-Currency Support<\/strong>\nDisplay and process orders in 150+ ISO 4217 currencies. Enable as many currencies as your store needs from a searchable admin grid with flag emojis.<\/p>\n\n<p><strong>Auto Exchange Rates<\/strong>\nRates 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 \u2014 rates are always available even if the API is temporarily down.<\/p>\n\n<p><strong>GeoIP Auto-Detection<\/strong>\nOn 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 \u2014 zero repeat API calls, zero impact on performance.<\/p>\n\n<p><strong>Two Switcher Modes<\/strong>\n- <strong>Full Mode<\/strong> \u2014 prices, cart, shipping, and checkout all process in the selected currency. Orders are saved with the customer's currency.\n- <strong>Visual Mode<\/strong> \u2014 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.<\/p>\n\n<p><strong>Per-Product Fixed Prices<\/strong>\nOverride 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 \u2014 all from the product edit page.<\/p>\n\n<p><strong>Smart Price Rounding<\/strong>\nFour rounding presets to make converted prices look natural:\n- <strong>Exact<\/strong> \u2014 precise decimal conversion\n- <strong>Round<\/strong> \u2014 round to nearest whole number\n- <strong>Charm<\/strong> \u2014 always end in .95 (e.g. 29.95)\n- <strong>.99 Pricing<\/strong> \u2014 always end in .99 (e.g. 29.99)<\/p>\n\n<p><strong>Currency Switcher \u2014 2 Styles<\/strong>\n- <strong>Dropdown<\/strong> \u2014 a compact dropdown button with the active currency, expands to list all options\n- <strong>Button group<\/strong> \u2014 all currencies displayed as inline buttons<\/p>\n\n<p>Both styles support flag emoji display, multiple label formats (symbol, code, symbol + code, full name), and are fully keyboard navigable with proper ARIA roles.<\/p>\n\n<p><strong>Shortcode<\/strong>\nPlace the switcher anywhere with <code>[storzen_currency_switcher]<\/code>. Supports <code>style<\/code>, <code>show_flag<\/code>, and <code>class<\/code> parameters.<\/p>\n\n<p><strong>Classic Widget<\/strong>\nDrag the <strong>Multi Currency Switcher<\/strong> widget into any sidebar or footer area from Appearance \u2192 Widgets.<\/p>\n\n<p><strong>Accessible &amp; Keyboard-Friendly<\/strong>\n- Full keyboard navigation (arrow keys, Enter, Escape, Tab)\n- ARIA listbox and aria-pressed roles\n- Focus management and roving tabindex\n- Screen-reader labels on every interactive element<\/p>\n\n\n\n<h4>\u26a1 Performance<\/h4>\n\n<ul>\n<li>Frontend CSS and JS only load when 2+ currencies are enabled<\/li>\n<li>Exchange rates cached in WordPress transients (configurable 1\u201348 hour interval)<\/li>\n<li>Database fallback table ensures rates are always available offline<\/li>\n<li>GeoIP result stored in a visitor cookie \u2014 no server-side per-IP storage<\/li>\n<li>WooCommerce variation price hash modified per currency \u2014 no stale cached prices served<\/li>\n<\/ul>\n\n\n\n<h4>\ud83d\udd12 Privacy &amp; GDPR<\/h4>\n\n<ul>\n<li><strong>No personal data stored<\/strong> \u2014 the plugin does not log IPs or personal information<\/li>\n<li>GeoIP detection uses the visitor's IP only to return a country code \u2014 the IP is not stored by the plugin<\/li>\n<li>Cookie set with <code>SameSite=Lax<\/code>, <code>Secure<\/code> on HTTPS, and <code>HttpOnly<\/code> for the country detection cookie<\/li>\n<li>Zero outbound data to Storzen servers<\/li>\n<\/ul>\n\n\n\n<h4>\ud83e\udde9 Compatibility<\/h4>\n\n<ul>\n<li>\u2705 WooCommerce 7.0+<\/li>\n<li>\u2705 WordPress 6.3+<\/li>\n<li>\u2705 HPOS (High-Performance Order Storage)<\/li>\n<li>\u2705 WooCommerce Cart &amp; Checkout Blocks<\/li>\n<li>\u2705 Block themes &amp; Full Site Editor (FSE)<\/li>\n<li>\u2705 Classic themes<\/li>\n<li>\u2705 WPML &amp; Polylang<\/li>\n<li>\u2705 Elementor, Divi, Bricks, Kadence, Astra<\/li>\n<\/ul>\n\n\n\n<p><strong>Setup (takes 2 minutes):<\/strong><\/p>\n\n<ol>\n<li>Go to <strong>Currency Switcher<\/strong> in the WordPress left-hand menu<\/li>\n<li>On the <strong>General<\/strong> tab \u2014 select your mode (Full or Visual) and enable currencies<\/li>\n<li>On the <strong>Exchange Rates<\/strong> tab \u2014 choose your rate source (ECB is free, no key needed)<\/li>\n<li>Add the switcher using the shortcode, widget, or template tag<\/li>\n<li>Done \u2713<\/li>\n<\/ol>\n\n<p>\ud83d\udcd6 <strong><a href=\"https:\/\/webtend.net\/docs\/multicurrency%20-Switcher-docs.html\">Full setup guide \u2192<\/a><\/strong><\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20the%20woocommerce%20block%20cart%20and%20checkout%3F\"><h3>Does this work with the WooCommerce block Cart and Checkout?<\/h3><\/dt>\n<dd><p>Yes. The plugin is declared compatible with WooCommerce Cart and Checkout Blocks. In Full Mode, prices convert throughout the entire block-based checkout experience.<\/p><\/dd>\n<dt id=\"is%20the%20european%20central%20bank%20rate%20source%20really%20free%3F\"><h3>Is the European Central Bank rate source really free?<\/h3><\/dt>\n<dd><p>Yes \u2014 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.<\/p><\/dd>\n<dt id=\"what%20is%20visual%20mode%3F\"><h3>What is Visual Mode?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"does%20geoip%20detection%20slow%20down%20my%20site%3F\"><h3>Does GeoIP detection slow down my site?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"can%20i%20set%20different%20prices%20per%20currency%20per%20product%3F\"><h3>Can I set different prices per currency per product?<\/h3><\/dt>\n<dd><p>Yes \u2014 and there is no limit. Open any product's edit page, go to the <strong>Currency Prices<\/strong> tab, and enter a fixed price for each enabled currency. Leave it blank to use the auto-converted rate.<\/p><\/dd>\n<dt id=\"is%20this%20compatible%20with%20wpml%20or%20polylang%3F\"><h3>Is this compatible with WPML or Polylang?<\/h3><\/dt>\n<dd><p>Yes. The plugin works alongside both multilingual plugins without conflicts. Currency settings are completely independent of language settings.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20the%20switcher%20to%20my%20store%3F\"><h3>How do I add the switcher to my store?<\/h3><\/dt>\n<dd><p>Three ways:\n1. <strong>Shortcode<\/strong> \u2014 paste <code>[storzen_currency_switcher]<\/code> anywhere in a page, post, or template\n2. <strong>Widget<\/strong> \u2014 go to <strong>Appearance \u2192 Widgets<\/strong> and drag <strong>Multi Currency Switcher<\/strong> to any sidebar\n3. <strong>PHP<\/strong> \u2014 <code>&lt;?php echo do_shortcode('[storzen_currency_switcher]'); ?&gt;<\/code><\/p><\/dd>\n<dt id=\"does%20it%20support%20variable%20products%3F\"><h3>Does it support variable products?<\/h3><\/dt>\n<dd><p>Yes. The plugin modifies the WooCommerce variation price cache hash per currency, so the correct converted prices are always served for variable products.<\/p><\/dd>\n<dt id=\"will%20it%20work%20with%20my%20theme%3F\"><h3>Will it work with my theme?<\/h3><\/dt>\n<dd><p>Yes. The plugin is designed to work with any properly coded WordPress theme \u2014 block themes, classic themes, and page builder themes (Elementor, Divi, Bricks, Kadence, Astra, GeneratePress, and more).<\/p><\/dd>\n<dt id=\"is%20any%20customer%20data%20sent%20to%20storzen%3F\"><h3>Is any customer data sent to Storzen?<\/h3><\/dt>\n<dd><p>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.<\/p>\n\n<\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Developer filter hooks now fire on every price-conversion, switcher-render, and GeoIP-detection path. This lets add-ons and Pro extensions integrate cleanly without monkey-patching:\n\n<ul>\n<li><code>storzen_cs_rate<\/code> \/ <code>scs_pro_rate<\/code> \u2014 modify the base\u2192target exchange rate (mirror-fired under both names for backward compatibility with existing Pro hooks).<\/li>\n<li><code>storzen_cs_convert_price<\/code> \/ <code>scs_pro_convert_price<\/code> \u2014 adjust the final converted price.<\/li>\n<li><code>storzen_cs_enabled_currencies<\/code> \/ <code>scs_pro_enabled_currencies<\/code> \u2014 restrict the visible currency list per visitor (role rules, country lock, etc.). Admin context is the callback's responsibility to opt out of.<\/li>\n<li><code>storzen_cs_switcher_html<\/code> \/ <code>scs_pro_switcher_html<\/code> \u2014 wrap or suppress the rendered switcher HTML.<\/li>\n<li><code>storzen_cs_geoip_country<\/code> \/ <code>scs_pro_geoip_country<\/code> \u2014 override the detected country before currency mapping.<\/li>\n<\/ul><\/li>\n<li>Fixed: Plugin URI in the main file header had a typo (\"ooCommerce\" \u2192 \"woocommerce\").<\/li>\n<li>Improved: Plugin description now mentions the Elementor widget compatibility, matching the rest of the codebase.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Multi-currency switcher for WooCommerce. Auto exchange rates, GeoIP detection, visual or full checkout mode. Zero bloat, zero telemetry.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/322190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=322190"}],"author":[{"embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/devhasib"}],"wp:attachment":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=322190"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=322190"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=322190"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=322190"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=322190"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=322190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}