{"id":332668,"date":"2026-06-29T10:57:18","date_gmt":"2026-06-29T10:57:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/phoenix-german-market-dhl-multi-currency-fix-for-woocommerce\/"},"modified":"2026-07-26T13:40:47","modified_gmt":"2026-07-26T13:40:47","slug":"phoenix-german-market-dhl-multi-currency-fix-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/br.wordpress.org\/plugins\/phoenix-german-market-dhl-multi-currency-fix-for-woocommerce\/","author":23519837,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.0.4","requires":"6.7","requires_php":"8.2","requires_plugins":null,"header_name":"Phoenix German Market DHL Multi-Currency Fix for WooCommerce","header_author":"PhoenixWP","header_description":"WCML multi-currency compatibility fix and German Market DHL international address fix. Requires German Market DHL + WCML (not included).","assets_banners_color":"02223b","last_updated":"2026-07-26 13:40:47","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/phoenixwp.com\/support\/","header_plugin_uri":"https:\/\/phoenixwp.com\/support\/","header_author_uri":"https:\/\/phoenixwp.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":188,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"phoenixwp","date":"2026-07-23 10:48:59"},"1.0.1":{"tag":"1.0.1","author":"phoenixwp","date":"2026-07-26 10:16:13"},"1.0.2":{"tag":"1.0.2","author":"phoenixwp","date":"2026-07-26 13:40:47"}},"upgrade_notice":{"1.0.2":"<p>Shipping costs now convert net + VAT so foreign-currency totals match EUR gross display.<\/p>","1.0.1":"<p>WCML-only bridge. Deactivate if you use Phoenix Multi-Currency (fixes are embedded there).<\/p>","1.0.0":"<p>Initial release on WordPress.org.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3589927,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3589927,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3589927,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3589927,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3602676,"resolution":"1","location":"assets","locale":"","width":1750,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3602676,"resolution":"2","location":"assets","locale":"","width":1750,"height":1000}},"screenshots":{"1":"Settings - WCML threshold, DHL shipping cost, and international address fixes","2":"Checkout with DHL shipping costs converted to the active WCML currency (CHF)"}},"plugin_section":[],"plugin_tags":[238284,3546,269459,286,103],"plugin_category":[45,48],"plugin_contributors":[268339,272951],"plugin_business_model":[],"class_list":["post-332668","plugin","type-plugin","status-publish","hentry","plugin_tags-german-market","plugin_tags-shipping","plugin_tags-wcml","plugin_tags-woocommerce","plugin_tags-wpml","plugin_category-ecommerce","plugin_category-language-tools","plugin_contributors-phoenixwp","plugin_contributors-stefanphoenix","plugin_committers-phoenixwp","plugin_support_reps-stefanphoenix"],"banners":{"banner":"https:\/\/ps.w.org\/phoenix-german-market-dhl-multi-currency-fix-for-woocommerce\/assets\/banner-772x250.png?rev=3589927","banner_2x":"https:\/\/ps.w.org\/phoenix-german-market-dhl-multi-currency-fix-for-woocommerce\/assets\/banner-1544x500.png?rev=3589927","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/phoenix-german-market-dhl-multi-currency-fix-for-woocommerce\/assets\/icon-128x128.png?rev=3589927","icon_2x":"https:\/\/ps.w.org\/phoenix-german-market-dhl-multi-currency-fix-for-woocommerce\/assets\/icon-256x256.png?rev=3589927","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/phoenix-german-market-dhl-multi-currency-fix-for-woocommerce\/assets\/screenshot-1.png?rev=3602676","caption":"Settings - WCML threshold, DHL shipping cost, and international address fixes"},{"src":"https:\/\/ps.w.org\/phoenix-german-market-dhl-multi-currency-fix-for-woocommerce\/assets\/screenshot-2.png?rev=3602676","caption":"Checkout with DHL shipping costs converted to the active WCML currency (CHF)"}],"raw_content":"<!--section=description-->\n<p><strong>Not a replacement for German Market or WCML.<\/strong> This free bridge plugin fixes two real-world issues when you run <strong>German Market DHL<\/strong> (Home Delivery, Packstation, Parcelshops) together with <strong>WCML multi-currency<\/strong>.<\/p>\n\n<h4>WCML multi-currency fix<\/h4>\n\n<p>German Market stores DHL free-shipping and minimum-order thresholds in your <strong>shop base currency<\/strong> (for example EUR). WCML converts product prices, but <strong>not<\/strong> custom German Market DHL shipping methods. Without this fix, a cart of 75 PLN can incorrectly unlock free shipping when your threshold is 75 EUR.<\/p>\n\n<ul>\n<li><strong>Free-shipping thresholds<\/strong> - converts <code>free_min_amount<\/code> and <code>minimum_amount<\/code> with WCML before comparing cart totals<\/li>\n<li><strong>Flat DHL rates<\/strong> - converts zone costs (for example 5.00 EUR \/ 15.00 EUR) to the active storefront currency<\/li>\n<li><strong>Any WCML currency<\/strong> and <strong>any shipping zone<\/strong> where the supported DHL methods are configured<\/li>\n<\/ul>\n\n<h4>International address fix<\/h4>\n\n<p>German Market splits address line 1 using a Germany-style pattern (street before number). For EU cross-border DHL labels, number-first addresses (for example France: <code>12 Rue Example<\/code>) can produce an empty street in the DHL API.<\/p>\n\n<ul>\n<li><strong>Bidirectional parsing<\/strong> - number-first and street-first formats for checkout and DHL label creation<\/li>\n<\/ul>\n\n<h4>Requirements (not included)<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/woocommerce\/\">WooCommerce<\/a><\/li>\n<li><a href=\"https:\/\/marketpress.de\/shop\/plugins\/woocommerce\/woocommerce-german-market\/\">German Market<\/a> with the <strong>DHL shipping add-on<\/strong><\/li>\n<li><a href=\"https:\/\/wpml.org\/documentation\/related-projects\/woocommerce-multilingual\/\">WCML<\/a> <strong>multi-currency<\/strong> enabled<\/li>\n<\/ul>\n\n<h4>Settings<\/h4>\n\n<p><strong>WooCommerce -&gt; GM DHL WCML Fix<\/strong> - enable threshold conversion, shipping-cost conversion, and address parsing independently.<\/p>\n\n<h4>Supported DHL method IDs<\/h4>\n\n<pre><code>dhl_home_delivery, `dhl_packstation`, `dhl_parcelshops`\n<\/code><\/pre>\n\n<p>Configure thresholds and costs in German Market in your <strong>shop base currency<\/strong> as usual - this plugin converts them on the storefront. Does <strong>not<\/strong> add DHL or multi-currency functionality. Does <strong>not<\/strong> support DPD or other German Market carriers.<\/p>\n\n<p>More on <a href=\"https:\/\/phoenixwp.com\/phoenix-wp-gm-dhl-wcml-fix\/\">phoenixwp.com<\/a> | Support: <a href=\"https:\/\/phoenixwp.com\/support\/\">phoenixwp.com\/support<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate <strong>WooCommerce<\/strong>, <strong>German Market<\/strong> (with DHL), and <strong>WCML<\/strong> multi-currency first.<\/li>\n<li>Upload this plugin to <code>\/wp-content\/plugins\/phoenix-german-market-dhl-multi-currency-fix-for-woocommerce\/<\/code> or install from the WordPress plugin directory.<\/li>\n<li>Activate through the <strong>Plugins<\/strong> menu.<\/li>\n<li>Open <strong>WooCommerce -&gt; GM DHL WCML Fix<\/strong> and confirm the feature toggles are enabled.<\/li>\n<li>Test checkout in a secondary currency (for example PLN or CHF) with a cart below and above your free-shipping threshold.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20a%20standalone%20dhl%20or%20multi-currency%20plugin%3F\"><h3>Is this a standalone DHL or multi-currency plugin?<\/h3><\/dt>\n<dd><p>No. It is a <strong>compatibility fix<\/strong> for shops that already use <strong>German Market DHL<\/strong> and <strong>WCML multi-currency<\/strong>. Neither plugin is included.<\/p><\/dd>\n<dt id=\"why%20is%20free%20shipping%20wrong%20without%20this%20plugin%3F\"><h3>Why is free shipping wrong without this plugin?<\/h3><\/dt>\n<dd><p>German Market compares EUR thresholds directly to the cart total in the active currency (for example 75 PLN treated as 75 EUR). This plugin converts the threshold with WCML first.<\/p><\/dd>\n<dt id=\"why%20are%20shipping%20costs%20shown%20as%205.00%20in%20pln%20instead%20of%20a%20converted%20amount%3F\"><h3>Why are shipping costs shown as 5.00 in PLN instead of a converted amount?<\/h3><\/dt>\n<dd><p>WCML auto-converts WooCommerce core methods (Flat Rate, Free Shipping) but not German Market DHL. Enable <strong>Convert DHL shipping costs<\/strong> in the plugin settings.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20any%20currency%20wcml%20supports%3F\"><h3>Does it work with any currency WCML supports?<\/h3><\/dt>\n<dd><p>Yes - any currency configured in WCML with exchange rates. The shop base currency is read from WooCommerce settings.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20multiple%20shipping%20zones%3F\"><h3>Does it work with multiple shipping zones?<\/h3><\/dt>\n<dd><p>Yes. Each zone instance keeps its own DHL cost and thresholds; the fix applies per rate at checkout.<\/p><\/dd>\n<dt id=\"why%20do%20french%20or%20other%20eu%20addresses%20fail%20on%20dhl%20labels%3F\"><h3>Why do French or other EU addresses fail on DHL labels?<\/h3><\/dt>\n<dd><p>German Market expects street-before-number formatting. Number-first addresses can leave the street field empty in the DHL API. The address fix normalizes both formats for label creation.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>No. This plugin is <strong>100% free<\/strong> (GPL). Download on <a href=\"https:\/\/wordpress.org\/plugins\/phoenix-german-market-dhl-multi-currency-fix-for-woocommerce\/\">WordPress.org<\/a> or from our <a href=\"https:\/\/phoenixwp.com\/plugins\/\">plugin directory<\/a>.<\/p><\/dd>\n<dt id=\"is%20the%20admin%20interface%20translated%3F\"><h3>Is the admin interface translated?<\/h3><\/dt>\n<dd><p>The plugin UI is <strong>English by default<\/strong>. A <strong>German (de_DE)<\/strong> language pack is bundled. Other locales: <a href=\"https:\/\/wordpress.org\/plugins\/loco-translate\/\">Loco Translate<\/a> or GlotPress.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: Rebuild German Market \/ WooCommerce shipping taxes before WCML conversion so incl.-tax displays match EUR gross (not net-only FX).<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>WCML-only conversion path (shop base currency -&gt; active WCML currency).<\/li>\n<li>Yields fully when Phoenix Multi-Currency is active (admin notice to deactivate this standalone bridge).<\/li>\n<li>Address fix remains independent of multi-currency; shipping conversion requires WCML.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial wordpress.org release.<\/li>\n<li>WCML conversion for DHL free-shipping and minimum thresholds (German Market DHL).<\/li>\n<li>WCML conversion for DHL flat shipping costs.<\/li>\n<li>International address parsing fix for DHL label API (checkout + <code>wgm_shipping_dhl_build_address_from_order<\/code>).<\/li>\n<li>Bundled German (de_DE) admin translations for DACH shops.<\/li>\n<li>HPOS compatible. Tested with WordPress 7.0 and WooCommerce 10.9.1 (German Market DHL 3.58.x).<\/li>\n<\/ul>","raw_excerpt":"Free compatibility fix for German Market DHL + WCML multi-currency: correct thresholds, shipping rates, and EU address parsing.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/br.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/332668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/br.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/br.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/br.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=332668"}],"author":[{"embeddable":true,"href":"https:\/\/br.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/phoenixwp"}],"wp:attachment":[{"href":"https:\/\/br.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=332668"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/br.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=332668"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/br.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=332668"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/br.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=332668"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/br.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=332668"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/br.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=332668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}