{"id":168927,"date":"2023-03-21T05:31:44","date_gmt":"2023-03-21T05:31:44","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dhl-ecommerce-apac\/"},"modified":"2026-06-09T09:40:19","modified_gmt":"2026-06-09T09:40:19","slug":"dhl-ecommerce-apac","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/dhl-ecommerce-apac\/","author":20814696,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.8","stable_tag":"1.1.8","tested":"6.6.5","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"DHL eCommerce APAC","header_author":"DHL APAC","header_description":"Hyperlink Infosystem integration for DHL eCommerce Malaysia","assets_banners_color":"785958","last_updated":"2026-06-09 09:40:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/example.com\/dhl-ecommerce-apac","header_author_uri":"https:\/\/example.com","rating":1.5,"author_block_rating":0,"active_installs":100,"downloads":3707,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.2":{"tag":"1.1.2","author":"dhlecommerceasia","date":"2025-06-10 08:19:07"},"1.1.3":{"tag":"1.1.3","author":"dhlecommerceasia","date":"2025-09-04 07:53:41"},"1.1.4":{"tag":"1.1.4","author":"dhlecommerceasia","date":"2025-10-09 06:46:00"},"1.1.5":{"tag":"1.1.5","author":"dhlecommerceasia","date":"2025-12-04 08:26:39"},"1.1.6":{"tag":"1.1.6","author":"dhlecommerceasia","date":"2026-03-17 06:41:54"},"1.1.7":{"tag":"1.1.7","author":"dhlecommerceasia","date":"2026-04-17 12:40:41"},"1.1.8":{"tag":"1.1.8","author":"dhlecommerceasia","date":"2026-06-09 09:40:19"}},"upgrade_notice":[],"ratings":{"1":1,"2":1,"3":0,"4":0,"5":0},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":2884037,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":2884034,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":2884032,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":2884032,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8"],"block_files":[],"assets_screenshots":{"screenshot-4.png":{"filename":"screenshot-4.png","revision":3565728,"resolution":"4","location":"plugin","width":468,"height":436},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3565728,"resolution":"1","location":"plugin","width":1841,"height":661},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3565728,"resolution":"2","location":"plugin","width":1838,"height":755},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3565728,"resolution":"3","location":"plugin","width":1558,"height":1646}},"screenshots":[]},"plugin_section":[],"plugin_tags":[201336,282,3808,3546,286],"plugin_category":[45],"plugin_contributors":[243491],"plugin_business_model":[],"class_list":["post-168927","plugin","type-plugin","status-publish","hentry","plugin_tags-dhl-shipping","plugin_tags-ecommerce","plugin_tags-labels","plugin_tags-shipping","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-dhlecommerceasia","plugin_committers-dhlecommerceasia"],"banners":{"banner":"https:\/\/ps.w.org\/dhl-ecommerce-apac\/assets\/banner-772x250.jpg?rev=2884032","banner_2x":"https:\/\/ps.w.org\/dhl-ecommerce-apac\/assets\/banner-1544x500.jpg?rev=2884032","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/dhl-ecommerce-apac\/assets\/icon.svg?rev=2884034","icon":"https:\/\/ps.w.org\/dhl-ecommerce-apac\/assets\/icon.svg?rev=2884034","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/dhl-ecommerce-apac\/trunk\/screenshot-1.png?rev=3565728","caption":""},{"src":"https:\/\/ps.w.org\/dhl-ecommerce-apac\/trunk\/screenshot-2.png?rev=3565728","caption":""},{"src":"https:\/\/ps.w.org\/dhl-ecommerce-apac\/trunk\/screenshot-3.png?rev=3565728","caption":""},{"src":"https:\/\/ps.w.org\/dhl-ecommerce-apac\/trunk\/screenshot-4.png?rev=3565728","caption":""}],"raw_content":"<!--section=description-->\n<p>The <strong>Shipping Labels for DHL eCommerce APAC<\/strong> plugin, developed by <strong>Algoleap Technologies Pvt Ltd<\/strong>, automates your shipping workflow by connecting your WooCommerce store to DHL eCommerce APAC services \u2014 with full support for <strong>WooCommerce HPOS<\/strong> and now <strong>automatic tracking status updates via Webhooks<\/strong>.<\/p>\n\n<h3>Key Features<\/h3>\n\n<ul>\n<li>Generate and print shipping labels directly from WooCommerce admin.<\/li>\n<li>Automatically track shipments and update order status via Webhooks.<\/li>\n<li>Offer DHL shipping options at checkout.<\/li>\n<li>Calculate accurate shipping rates based on destination, weight, and dimensions.<\/li>\n<li>Supports WooCommerce HPOS (High-Performance Order Storage).<\/li>\n<li>Easy-to-use interface for generating and printing shipping labels.<\/li>\n<li>Seamless integration with WooCommerce checkout process.<\/li>\n<li>Detailed documentation and support available.<\/li>\n<\/ul>\n\n<h3>New in Version 1.1.8<\/h3>\n\n<ul>\n<li><p><strong>Fixed: Fatal Error on Order Edit Screen (Critical Fix)<\/strong><\/p>\n\n<ul>\n<li>Resolved \"Call to a member function get_data() on bool\" crash occurring on line 108 of the shipping label class.<\/li>\n<li>Root cause: <code>$getOrderproductmname<\/code> was a redundant second <code>wc_get_order()<\/code> call that could return <code>false<\/code> (bool) when the order ID variable was undefined, causing a fatal error when <code>get_data()<\/code> was called on it.<\/li>\n<li>Fix: Removed the redundant <code>wc_get_order()<\/code> call entirely. The already-resolved <code>$dhl_order<\/code> order object is now reused directly, which is guaranteed valid by the guard above it.<\/li>\n<li><code>$dhl_order_id<\/code> has been restored and is always correctly set from <code>$dhl_order-&gt;get_id()<\/code>.<\/li>\n<li>The order guard has been strengthened from a loose truthy check (<code>!$dhl_order<\/code>) to a strict type check (<code>!$dhl_order instanceof WC_Order<\/code>), preventing any non-order value from passing through.<\/li>\n<\/ul><\/li>\n<li><p><strong>Fixed: Fatal Error on Cash on Delivery Field (Critical Fix)<\/strong><\/p>\n\n<ul>\n<li>Resolved \"Call to a member function get_total() on null\" crash occurring on line 434 of the shipping label class.<\/li>\n<li>Root cause: The Cash on Delivery input field in the meta box HTML was still referencing the old <code>$getOrderproductmname<\/code> variable, which no longer exists after the above fix.<\/li>\n<li>Fix: Replaced <code>$getOrderproductmname-&gt;get_total()<\/code> with <code>$dhl_order-&gt;get_total()<\/code>, which is the correct, already-validated order object.<\/li>\n<li>All remaining references to <code>$getOrderproductmname<\/code> have been removed from the file \u2014 a full scan confirms zero occurrences remain.<\/li>\n<\/ul><\/li>\n<li><p><strong>Improved: Order Object Handling<\/strong><\/p>\n\n<ul>\n<li>Eliminated all redundant <code>wc_get_order()<\/code> calls inside the meta box render function.<\/li>\n<li>Order data, items, and totals are now all retrieved from a single validated <code>$dhl_order<\/code> instance.<\/li>\n<li>Reduces database queries per page load on the order edit screen.<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h3>Configuration<\/h3>\n\n<ol>\n<li>Enter your <strong>DHL eCommerce APAC API credentials<\/strong>.<\/li>\n<li>Configure your default package dimensions and shipping preferences.<\/li>\n<li>Enable <strong>Webhook tracking updates<\/strong> (enabled automatically).<\/li>\n<li>Enable debug logging if needed.<\/li>\n<\/ol>\n\n<h3>Usage<\/h3>\n\n<h3>Creating Shipping Labels<\/h3>\n\n<ol>\n<li>Go to <strong>WooCommerce \u2192 Orders<\/strong>.<\/li>\n<li>Open any order and find the \"DHL eCommerce APAC\" panel.<\/li>\n<li>Fill in shipping details and click <strong>Generate Label<\/strong>.<\/li>\n<li>Download and print the generated label.<\/li>\n<\/ol>\n\n<h3>Bulk Label Creation<\/h3>\n\n<ol>\n<li>Go to <strong>WooCommerce \u2192 Orders<\/strong>.<\/li>\n<li>Select multiple orders.<\/li>\n<li>Choose <strong>Create DHL eCommerce APAC Labels<\/strong> from the Bulk Actions dropdown.<\/li>\n<\/ol>\n\n<h3>Automatic Tracking Updates<\/h3>\n\n<ul>\n<li>DHL's ELR system automatically sends tracking updates to your webhook endpoint.<\/li>\n<li>The WooCommerce order table updates the <strong>Tracking Status<\/strong> automatically.<\/li>\n<\/ul>\n\n<h3>WooCommerce HPOS Compatibility<\/h3>\n\n<p>Fully compatible with WooCommerce High-Performance Order Storage.<\/p>\n\n<h3>Privacy &amp; Logging<\/h3>\n\n<p>Webhook and API logs are stored securely in WooCommerce \u2192 Status \u2192 Logs (when enabled).<\/p>\n\n<h3>Disclaimer<\/h3>\n\n<p>This plugin is an independent DHL eCommerce APAC integration and is not officially endorsed by DHL.<\/p>\n\n<h3>Support<\/h3>\n\n<p>Contact the WordPress plugin support forum or plugins@wordpress.org.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/shipping-labels-dhl-ecommerce-apac<\/code>, or install via the WordPress plugin screen.<\/li>\n<li>Activate it via <strong>Plugins &gt; Installed Plugins<\/strong>.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Settings \u2192 Shipping \u2192 DHL eCommerce APAC<\/strong> to configure.<\/li>\n<\/ol>\n\n<p><strong>Note:<\/strong> Always back up your site before updating the plugin.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20support%20automatic%20tracking%20updates%3F\"><h3>Does this plugin support automatic tracking updates?<\/h3><\/dt>\n<dd><p>Yes \u2014 tracking updates are pushed directly by DHL to your webhook endpoint.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20manually%20configure%20the%20webhook%3F\"><h3>Do I need to manually configure the webhook?<\/h3><\/dt>\n<dd><p>No \u2014 it is registered automatically when the plugin is activated.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20hpos%3F\"><h3>Does this work with HPOS?<\/h3><\/dt>\n<dd><p>Yes, the plugin is fully compatible.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<p>1.1.8\nFixed: Fatal \"Call to a member function get_data() on bool\" error on order edit screen (line 108).\nFixed: Fatal \"Call to a member function get_total() on null\" error on Cash on Delivery field (line 434).\nFixed: Removed all redundant wc_get_order() calls inside meta box render \u2014 $dhl_order reused directly.\nFixed: Restored missing $dhl_order_id assignment that was incorrectly commented out.\nImproved: Order guard strengthened to instanceof WC_Order check for permanent type safety.\nImproved: Reduced database queries on order edit screen by eliminating duplicate order fetches.<\/p>\n\n<p>1.1.7\nFixed: Shipment ID now uses WooCommerce displayed order number instead of internal order ID.\nImproved: Better compatibility with HPOS and sequential order numbering plugins.\nEnhanced: Shipment reference now matches admin order display for improved consistency.<\/p>\n\n<p>1.1.6\nFixed: Expired token issue by implementing automatic token generation and refresh.\nImproved: Removed dependency on manual \"Test Connection\".\nImproved: Bulk label creation reliability without prior authentication.\nEnhanced: Token validation to prevent empty token API requests.\nRefactored: Centralized token handling logic across all label operations.<\/p>\n\n<p>1.1.5\nAdded: Automatic webhook endpoint for real-time tracking updates from DHL.\nAdded: Dynamic webhook registration during plugin activation.\nImproved: Automatic update of \"Status\" in WooCommerce Orders.\nEnhanced: Logging for webhook requests and responses.\nTested: WooCommerce 9.1.0 &amp; WordPress 6.6\nAdded: Company Name field now supports 60 characters.\nUpdated: Address Line 1 (60 chars) &amp; Address Line 2 (120 chars) limits.\nImproved: User login redirection to DHL Configuration page.<\/p>\n\n<p>1.1.4\nFixed: Replaced all error_log() calls with him_dhl_bulk_order_log_msg().\nImproved: Bulk label API requests and responses logging.\nFixed: Ensured API responses save metadata only after proper validation.\nImproved: Return address fallback logic to prevent invalid API data.<\/p>\n\n<p>1.1.3\nFixed: Shipper address handling during bulk label creation.\nImproved: Unified bulk label logging system.\nFixed: Missing error details in bulk creation logs.<\/p>\n\n<p>1.1.2\nImproved: Stability and bug fixes.\nEnhanced: Full compatibility with HPOS.\nAdded: Support for bulk label ZIP download.\nUpdated: Metadata handling for HPOS tables.\nImproved: Session management during label creation.<\/p>\n\n<p>1.1.1\nFix: Added messageSource parameter in API requests.<\/p>\n\n<p>1.1.0\nFix: Weight calculation adjustments.<\/p>\n\n<p>1.0.9\nFix: Company name is now optional.<\/p>\n\n<p>1.0.8\nFix: Limited package description to 50 characters.<\/p>\n\n<p>1.0.7\nFix: Copied shipping details from billing details when only billing exists.\nFix: Shipping details now populate correctly.<\/p>\n\n<p>1.0.6\nFix: Conflict with Sequential Order Numbers plugin.<\/p>\n\n<p>1.0.5\nNew: Cash on Delivery support improvements.<\/p>\n\n<p>1.0.4\nFix: Corrected Address Line 1 mapping.<\/p>\n\n<p>1.0.3\nFix: Populated Remark field with Package Description.\nFix: Updated tracking URL.<\/p>\n\n<p>1.0.2\nFix: CSS improvements.<\/p>\n\n<p>1.0.1\nNew: Shipper address change implementation.\nNew: Error logging for label creation.\nFix: CSS issues.<\/p>\n\n<p>1.0.0\nInitial release.<\/p>\n\n<p><strong>Note:<\/strong> Before updating the plugin, we strongly recommend backing up your site (files and database) to avoid data loss in case of compatibility issues.<\/p>","raw_excerpt":"Integrate DHL eCommerce APAC with WooCommerce. Generate shipping labels, track shipments via Webhooks, and supports HPOS.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/168927","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=168927"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dhlecommerceasia"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=168927"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=168927"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=168927"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=168927"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=168927"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=168927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}