DPD Portugal for WooCommerce

Changelog

#### 14.4 – 2026-04-25

  • [FIX] PHP fatal error when calling a private main class method
  • [DEV] Tested up to WordPress 7.0-RC2 and WooCommerce 10.7

#### 14.3 – 2026-03-31

  • [FIX] PHP fatal error on PHP 7.4 and below – You shouldn't be using it by now
  • [DEV] Improve internal PHPCS checks for supported PHP version
  • [DEV] Requires WordPress 6.3, WooCommerce 8.6, and PHP 7.4 or above

#### 14.2 – 2026-03-16

  • [TWEAK] Alert important error messages before reloading settings after saving them
  • [DEV] Disable debug in demo mode
  • [DEV] Improve debug: REST API Token, End of day report
  • [DEV] Improve GitHub Actions

#### 14.1 – 2026-03-09

  • [NEW] Direct link to the plugin's settings and documentation on the WordPress Admin Command Palette
  • [FIX] Fatal error when issuing labels or return labels programmatically/automatically
  • [DEV] Move settings page, request collect page, and end of day report page JavaScript to the new admin.js file
  • [DEV] GitHub Action now also updates the "WP Version Required" and "WP Version Tested Up To" fields on the plugin product
  • [DEV] Tested up to WordPress 7.0-beta3-61865 and WooCommerce 10.6.0-beta.2

#### 14.0 – 2026-02-27

  • [NEW] The label comments field is now a single 64-character field instead of two 32-character fields
  • [NEW] Implement optional debug routines with a WooCommerce logger for improved information when requesting support
  • [DEV] Log label issuing, return label issuing, and collect reques parameters, success and failure
  • [DEV] Log plugin upgrade routine
  • [DEV] Use internal trim function wherever possible
  • [DEV] Requires PHP 7.3
  • [DEV] Tested up to WordPress 7.0-beta2-61753 and WooCommerce 10.6.0-beta.1

#### 13.9 – 2026-02-13

  • [FIX] Build release ZIP GitHub action to make sure WordPress detects a direct upload as the same plugin instead of creating a new folder

#### 13.8 – 2026-01-30

  • [NEW] Show the "[Portugal DPD Pickup and Lockers network for WooCommerce](https://wordpress.org/plugins/portugal-chronopost-pickup-woocommerce/)" plugin integration on the optional extensions section of the settings, if it's active
  • [TWEAK] The international returns account (RIN) is now allowed for Belgium, Denmark, Estonia, Finland, France, Germany, Latvia, Luxembourg, Netherlands, Poland, Slovakia, Slovenia, and Sweden (Switzerland was removed)
  • [TWEAK] Do not integrate with pickup point plugins if the license has expired
  • [TWEAK] The default account for returns in Portugal is now an account setting instead of the previous "Default account" field on the returns options
  • [TWEAK] Show allowed countries for international returns next to the RIN account
  • [DEV] New `woo_dpd_portugal_alert_shipping_label_issued` filter to suppress the "label issued" alert on the order screen
  • [DEV] Updater improvements
  • [DEV] Tested up to WordPress 7.0-alpha-61557 and WooCommerce 10.5.0-beta.2

#### 13.7 – 2026-01-19

  • [NEW] Advanced Shipment Tracking for WooCommerce integration: automatically add tracking number to this plugin upon label issuing
  • [DEV] Updater improvements
  • [DEV] Tested up to WordPress 7.0-alpha-61496 and WooCommerce 10.5.0-beta.1

#### 13.6 – 2025-12-16

  • [FIX] Date output on the end-of-day report page
  • [FIX] Minor fix when checking for updates on the settings page
  • [FIX] Load textdomain warnings
  • [DEV] Tested up to WordPress 7.0-alpha-61379 and WooCommerce 10.4.2

#### 13.5 – 2025-12-10

  • [DEV] New updater v12 with multisite support improvements
  • [DEV] Tested up to WordPress 7.0-alpha-61365 and WooCommerce 10.4

#### 13.4 – 2025-12-04

  • [FIX] Hide shipping label issuing status on the backend orders list for orders that don't need shipping
  • [FIX] Fatal error when adding the PrintNode API Key
  • [DEV] Tested up to WordPress 7.0-alpha-61349 and WooCommerce 10.4

#### 13.3 – 2025-07-18

  • [TWEAK] Only show "Request collect until…" if "Collect request" internal extension is enabled
  • [TWEAK] Do not allow any internal extension to run, and add alert warnings if the license has expired
  • [FIX] Label PDF download on our demo sites
  • [DEV] Updater improvements (v11.0) to check for expired licenses
  • [DEV] Tested up to WordPress 6.9-alpha-60417 and WooCommerce 10.0

#### 13.2 – 2025-07-02

  • [FIX] Label PDF download on our demo sites
  • [DEV] Tested up to WordPress 6.9-alpha-60403 and WooCommerce 10.0.0-rc.2

#### 13.1 – 2025-06-16

  • [TWEAK] Internal extensions: Enable/disable "Collect request" functionality
  • [TWEAK] Internal extensions: Enable/disable "End of day report" functionality
  • [TWEAK] Try to get AT Code from InvoiceXpress if order has delivery guide but no AT Code yet
  • [FIX] One i18n string
  • [DEV] Tested up to WordPress 6.9-alpha-60310 and WooCommerce 9.9.3

#### 13.0 – 2025-05-21

  • [NEW] [PrintNode](https://www.printnode.com/) internal extension: Automatically print the shipping label immediately upon issuing to a PrintNode-connected printer
  • [DEV] Allow accessing the label PDF without login, with a checksum stored on a transient
  • [DEV] Add `$shipment_data` as a second parameter for the `woo_dpd_portugal_label_issued` action
  • [DEV] New `woo_dpd_portugal_order_issue_label_form_after_shipping_details` action on the issue label form
  • [DEV] Tested up to WordPress 6.9-alpha-60243 and WooCommerce 9.9.0-beta.1

#### 12.7 – 2025-04-10

  • [NEW] **[We are now called Naked Cat Plugins](https://nakedcatplugins.com/we-are-now-naked-cat-plugins/) 🎉**
  • [FIX] Decode HTML entities on the password before the API call to get the token

#### 12.6 – 2025-04-10

  • [NEW] Brand change

#### 12.5 – 2025-03-26

  • [TWEAK] Destination address is now one single 64 characters field instead of two 32 characters fields
  • [TWEAK] Deprecation notice for "Default accounts per destination"

#### 12.4 – 2025-03-21

  • [NEW] [Automatic Issuing](https://nakedcatplugins.com/product/dpd-portugal-for-woocommerce-automatic-issuing-extension/) extension – Allows you to configure automatic shipping label issuing when an order changes status
  • [DEV] Allow extensions to add JS and/or CSS to the settings and order edit screens

#### 12.3 – 2025-03-20

  • [NEW] Prepare for the (soon to be released) "Automatic Issuing" extension
  • [FIX] Avoid Javascript confirmation dialog when clicking the "License not active" link on the plugins list
  • [DEV] Tested up to WordPress 6.8-beta3-60056 and WooCommerce 9.8.0-beta.1

#### 12.2 – 2025-03-11

  • [FIX] Page not reloading after label issuing

#### 12.1 – 2025-02-28

  • [FIX] Incorrect weights and charge on delivery values for programmatically issued labels

#### 12.0 – 2025-02-27

  • [NEW] **Removed support for the legacy SOAP API**
  • [NEW] Orders list integration internal extension: Show DPD Portugal label issuing status on the backend orders list
  • [NEW] Phone and Mobile country code fields on the plugin settings for sender and sender contact details
  • [NEW] Allow setting country code for shipment phone numbers
  • [TWEAK] Use shipping phone instead of billing phone, if set
  • [TWEAK] Remove fax number (finally!)
  • [TWEAK] Automatically open the issue label form if the `#woo_dpd_portugal_order_metabox_fields_issue` anchor is found on the order management URL
  • [FIX] Do not set the country code to API when the phone or mobile number is not set
  • [FIX] The `woo_dpd_portugal_label_issued_error`, `woo_dpd_porttugal_return_issued_error`, and `woo_dpd_portugal_request_pickup_error` actions were not being triggered when failing to get a new token
  • [DEV] Add error reasons to the args variable array on the `woo_dpd_portugal_label_issued_error` action, so that 3rd party can act differently based on that reason
  • [DEV] Requires WordPress 6.2 and WooCommerce 8.0
  • [DEV] Tested up to WordPress 6.8-alpha-59876 and WooCommerce 9.7.0

#### 11.4 – 2025-01-14

  • [FIX] WPML detection
  • [FIX] Incorrect `printf` instead of correct `sprintf`
  • **Attention: The legacy SOAP API to issue labels will be removed on the next update**

#### 11.3 – 2025-01-10

  • [TWEAK] Remove invalid characters from post codes before using them on the label issuing form
  • [FIX] Updater: avoid duplicate translation notices
  • [FIX] WooCommerce required version
  • [FIX] License validation, before the `wp` action runs, on websites with WPML set to have different domains per language

#### 11.2 – 2024-12-26

  • [FIX] Multiple Origins integration field on issuing labels and requesting pickup was not showing correctly

#### 11.1 – 2024-12-23

  • [NEW] List optional extensions on the plugin settings
  • [DEV] Tested up to WordPress 6.8-alpha-59545 and WooCommerce 9.6.0-beta.1

#### 11.0 – 2024-12-09

  • [NEW] Introduced the concept of "Internal extensions", which are small functionalities that not every website needs, and can be activated on demand
  • [NEW] Internal extension "Spanish non-continental regions": Show shipping account fields, and apply its rules, for Baleares, Canarias, and Ceuta / Melilla (if DPD assigned specific shipping accounts for these territories)
  • [TWEAK] Activation of "Return labels" is now on Internal extensions
  • [FIX] Some wrong text domain calls
  • [DEV] Apply WordPress Coding Standards
  • [DEV] Minor code refactoring
  • [DEV] Requires WordPress 5.8, WooCommerce 7.0, and PHP 7.2 or above
  • [DEV] Tested up to WordPress 6.8-alpha-59497 and WooCommerce 9.5.0-rc.1

#### 10.1 – 2024-11-13

  • [FIX] Fatal error when WooCommerce is running update routines for 9.4
  • [DEV] License validation on websites with WPML set to have different domains per language
  • [DEV] Tested up to WordPress 6.7 and WooCommerce 9.4.1

#### 10.0 – 2024-10-23

  • [NEW] Pick up / Collect request using the REST API – The specific pick up legacy webservice running on TCP port is no longer used, unless still using the **legacy SOAP API to issue labels, which will be removed soon**
  • [TWEAK] "Pick up request" is now referred to as "Collect request" to avoid confusion with the "Pickup points" service
  • [TWEAK] Improve SOAP API legacy warnings
  • [DEV] Updater v10
  • [DEV] Tested up to WordPress 6.7-RC1-59273 and WooCommerce 9.4.0-rc.1

#### 9.2 – 2024-10-08

  • [NEW] Improve connection tests on the plugin settings screen
  • [FIX] Load text domain at the right time to avoid PHP notices on WordPress 6.7 and above
  • [DEV] Tested up to WordPress 6.7-beta1-59184 and WooCommerce 9.4.0-beta.2

#### 9.1 – 2024-07-26

  • [FIX] Number of orders in the end of the day report is no longer limited to 10
  • [TWEAK] Fix link on the main plugin file header
  • [DEV] Tested up to WordPress 6.7-alpha-58810 and WooCommerce 9.1.3

#### 9.0 – 2024-04-24

  • [NEW] Integrated DPD object tracking
  • [FIX] Legacy API Mode warning on new installs
  • [FIX] AT Code field now accepts 11 characters
  • [DEV] Tested up to WordPress 6.6-alpha-58011 and WooCommerce 8.9.0-dev

#### 8.0 – 2024-04-05

  • [NEW] End of day reports
  • [NEW] Deprecate old SOAP API
  • [DEV] Requires WooCommerce 6.0 or above
  • [DEV] Tested up to WordPress 6.6-alpha-57928 and WooCommerce 8.8.0-rc.1

#### 7.4 – 2024-03-29

  • [DEV] Minor updater fix

#### 7.3 – 2024-03-29

  • [DEV] Store REST API token in cache for re-use is still active
  • [DEV] Add "Requires Plugins" header
  • [DEV] Improve plugin updater – Show translation update notices
  • [DEV] Apply some WordPress Coding Standards
  • [FIX] Deprecated: Creation of dynamic property in PHP 8.3
  • [TWEAK] Pickup plugins links on settings
  • [DEV] Tested up to WordPress 6.5-RC3-57875 and WooCommerce 8.8.0-beta.1

#### 7.2 – 2024-02-12

  • [NEW] Store shipping date for later use on the "end of day report" functionality
  • [DEV] Better contextual helpers logic

#### 7.1 – 2024-02-08

  • [NEW] Implement contextual helpers for easier boarding when installing the plugin
  • [FIX] Force pick up request account when in test mode
  • [DEV] Tested up to WordPress 6.5-alpha-57555 and WooCommerce 8.6.0-rc.1

#### 7.0 – 2024-01-27

  • [FIX] Correctly fetch tracking codes
  • [FIX] Stop showing option to request pick up on return labels if requirements are not met (credentials)
  • [DEV] Updater improvements

#### 6.9 – 2024-01-23

  • Better feedback when the license is expired
  • Tested up to WordPress 6.5-alpha-57299 and WooCommerce 8.5.1

#### 6.8 – 2024-01-05

  • Moloni WooCommerce plugin integration: use AT Code from the "Guia de Transporte"
  • New "Portugal: Islands – By air" service
  • New setting: Default account for returns
  • Limit shipments to pickup points to 1 parcel (including direct to pickup point, home + pickup point and international pickup points)
  • Fix return label default values when there's already a shipment made with the new REST API
  • Fix label download link on the new REST API when WordPress is installed on a directory
  • Fix the way the jQuery Block UI is called in the pick up request page
  • Remove international pickup services from return label options

#### 6.7 – 2023-12-09

  • Fix on the translations updater to allow extensions to use it
  • Small fix on the expired licensing information

#### 6.5 – 2023-12-02

  • Update plugin translations online instead of shipping them with the main plugin
  • Requires WordPress 5.4
  • Tested up to WordPress 6.5-alpha-57137 and WooCommerce 8.4.0-beta.1

#### 6.4 – 2023-11-23

  • Fixed a bug where the Predict service would be active when using the new REST API, even if disabled on the settings
  • Better naming for the Spain and Europe home delivery services

#### 6.3 – 2023-09-22

  • **Further integration with the "[DPD / SEUR / Geopost Pickup and Lockers network for WooCommerce](https://nakedcatplugins.com/product/dpd-seur-geopost-pickup-and-lockers-network-for-woocommerce/)" international Pickup Points plugin**

#### 6.2 – 2023-09-19

  • Fix the Pickup Point ID when using the new REST API and the "Portugal DPD Pickup and Lockers network for WooCommerce" free plugin
  • Fix collection of tracking numbers on the new REST API
  • Prepare the integration with the soon to be released international Pickup Points plugin
  • Disambiguate between "pickup" (point) and "pick up" (collection from shop owner)

#### 6.1.1 – 2023-09-18

  • Allow returns from other countries besides Portugal: Estonia, France, Germany, Luxembourg, Netherlands and Switzerland
  • New "International returns – RIN" service
  • Default to the new REST API on new installs
  • Show pickup cutoff times for the shop address when issuing labels
  • Fix version number

#### 6.0 – 2023-09-14

  • **New REST API (request your DPD sales manager for the new credentials ASAP, as the old SOAP webservice will be discontinued soon)**
  • New AT Code field when issuing labels (only in the new REST API), including integration with our [InvoiceXpress plugin](https://invoicewoo.com)
  • New "Portugal: Home Delivery + Pickup HPD (pickup point chosen by DPD)" service
  • Fix services names according to the DPD internal convention
  • Fix jQuery deprecation notices
  • Tested up to WordPress 6.4-alpha-56530 and WooCommerce 8.1.0

#### 5.0.0 – 2023-08-08

  • **Allow to choose the shipping methods for which orders the option to issue DPD labels should be displayed**
  • Tested up to WordPress 6.3-RC4-56369 and WooCommerce 8.0.0-rc.2

#### 4.2.1 – 2023-07-04

  • Fix the DPD Pickup network link
  • Small code tweaks
  • Tested up to WordPress 6.3-beta3-56130 and WooCommerce 7.9.0-beta.2

#### 4.2.0 – 2023-05-31

  • New "International: By air" service
  • New test credentials
  • Requires WooCommerce 5.0
  • Tested up to WordPress 6.3-alpha-55859 and WooCommerce 7.8.0-beta.2

#### 4.1.0 – 2023-01-04

  • WooCommerce 7.1 and above High-Performance Order Storage compatible;
  • Fix trailing comma for PHP below 7.3 (which you should NOT be using)
  • Tested up to WooCommerce 7.3-rc.1 and WordPress 6.2-alpha-55027

#### 4.0.0 – 2022-08-12

  • Fixed a bug where charged on delivery and weight fields would not respect the WooCommerce decimal separator settings (thanks to [pedradatattoosupplies.com](https://www.pedradatattoosupplies.com))
  • Small tweaks on the settings interface
  • Requires WooCommerce 4.0 and WordPress 5.0 or above
  • Tested up to WooCommerce 6.8 and WordPress 6.1-alpha-53862

#### 3.9.0 – 2022-05-05

  • **New brand: PT Woo Plugins 🎉**
  • Tested up to WooCommerce 6.5.0-rc.1 and WordPress 6.0-beta2-53236

#### 3.8.1 – 2022-01-27

  • Option to force the shop owner to choose an account for orders with pickup when issuing the label to avoid mistakes
  • Tested up to WordPress 6.0-alpha-52640 and WooCommerce 6.2.0-rc.1

#### 3.8.0 – 2021-09-22

  • New "Portugal: Islands – Maritime transport" service
  • Tested up to WordPress 5.9-alpha-51842 and WooCommerce 5.8.0-beta.1

#### 3.7.1 – 2021-08-16

  • New "woo_dpd_portugal_default_shipment_service_for_order" filter to allow overriding the default service for a specific order
  • Tested up to WordPress 5.9-alpha-51607 and WooCommerce 5.6.0-rc.2

#### 3.7.0 – 2021-06-03

  • New settings: default service for Home and Pickup delivery in Portugal
  • Plugin update information and support link on the settings screen
  • Tweaks on the service names
  • Fix a bug on the socket timeout test
  • Tested up to WordPress 5.8-alpha-51064 and WooCommerce 5.4.0-rc.1

#### 3.6.0 – 2021-05-21

  • Add pickup cut-off information to the pickup request page
  • Check for socket timeout on the connection tests
  • Add the "Update URI" header
  • Requires PHP 7.0 or above
  • Tested up to WooCommerce 5.4-beta.1

#### 3.5.4 – 2021-05-11

  • Better debugging on each label issued (needs WP_DEBUG set to true)
  • Pass label issuing parameters to the `woo_dpd_portugal_label_issued_error` and `woo_dpd_portugal_return_issued_error` hooks
  • Tested up to WooCommerce 5.3.0

#### 3.5.3 – 2021-04-29

  • Fix a fatal error on PHP 7.2 and below
  • Tested up to WooCommerce 5.3.0-rc.1

#### 3.5.2 – 2021-04-19

  • Better error feedback when failing to contact the DPD Portugal webservice due to firewall configuration on the client server
  • Tested up to WordPress 5.8-alpha-50689 and WooCommerce 5.2.2

#### 3.5.1 – 2021-04-05

  • Better error feedback when DPD does not send an error description
  • Use 9999 instead of PHP_INT_MAX on our actions

#### 3.5.0 – 2021-03-31

  • Several changes to allow better 3rd party integrations
  • New filters on the parameters sent to the DPD webservices
  • Allow issuing labels programmatically and pass custom shipment or return data to the action
  • Allow saving extra information on the previous pickup request logs
  • Increate previous pickup requests on the log and fine-tune their presentation
  • Code review and translation updates
  • Tested up to WordPress 5.8-alpha-50614 and WooCommerce 5.2.0-rc.1

#### 3.4.0 – 2020-12-23

  • Move tracking information on emails to before order details instead of before customer details ([see here how to revert it](https://gist.github.com/webdados/9849d91c5cba92145c545fec03467155))
  • Under the hood changes to the way the hooks are initialized so that child themes can hook into all our own hooks
  • Tested up to WordPress 5.7-alpha-49862 and WooCommerce 4.9.0-beta.1

#### 3.3.1 – 2020-12-15

  • Fix PHP SoapClient test (thanks: [Imprima Fotos](https://www.imprimafotos.pt/))

#### 3.3.0 – 2020-12-04

  • Allow the issuing of return label even if a shipping label wasn't issued in the first place
  • New settings field for B2B delivery account
  • Better UX on the order screen and invalid fields feedback
  • Set default service account when the destination is in Spain or Europe
  • Always send the ValorCOD and Predict fields even if empty
  • Check for PHP SoapClient on the connection tests

#### 3.2.0 – 2020-12-03

  • Put in place the necessary filters and action for future extensions
  • Support for the "[Multiple Origins](https://nakedcatplugins.com/product/dpd-portugal-for-woocommerce-multiple-origins-extension/)" extension, that allows shops to ship from several locations
  • Several small fixes

#### 3.1.1 – 2020-12-02

  • Fix PHP fatal error when the PHP short_open_tag setting is inactive
  • Fix PHP notice when checking for the "Portugal DPD Pickup and Lockers network for WooCommerce" plugin

#### 3.1.0 – 2020-11-26

  • Set label type for returns
  • Properly show test mode status on the settings page
  • Fix a PHP notice on the Request pickup page
  • Fix a PHP notice on the Issue return label form
  • Avoid SSL cURL error 60 when requesting the pickup

#### 3.0.0 – 2020-11-24

  • Issue return labels and request pickup at the customer's address (thanks: [Do Zero](https://do-zero.pt/))
  • Test mode
  • Better organization of the DPD metabox on the order edit screen
  • Request pickup page clarifications
  • "Get support" link on the settings page
  • Tested up to WordPress 5.6-beta3-49562 WooCommerce 4.8.0-beta.1

#### 2.5.0 – 2020-10-28

  • Integration with the free "Portugal DPD Pickup and Lockers network for WooCommerce" plugin (version 2.1.0 and above), allowing to completely hide lockers from the checkout or reject shipping to a locker when the payment method is "Cash on delivery"

#### 2.4.1 – 2020-09-17

  • Autofill the "Charge on delivery" field when the order payment method is "Cash on delivery"
  • Pre-validation of the label fields on the order admin screen
  • Fix Address (2nd line) label
  • Tested up to WooCommerce 4.5.2

#### 2.3 – 2020-09-08

  • Better services naming
  • Support to request the Predict service

#### 2.2 – 2020-09-03

  • Support for the Mixed service: Home Delivery + Pickup network
  • Tested up to WordPress 5.6-alpha-48937 and WooCommerce 4.5.0-rc.3

#### 2.1 – 2020-07-20

  • Avoid requesting pickups for Saturdays and Sundays
  • Show pickup address when requesting it

#### 2.0 – 2020-07-18

  • You can now request a pickup from DPD directly from your website (see [here](https://gist.github.com/webdados/74d45a652ab36b9dcd7bfdaeb34046b4) how to do it programmatically)
  • Fix shipping label weight when WooCommerce is not set to kg
  • Add DPD logo to the settings page
  • Connection tests on the settings page
  • Reorganization of the settings

#### 1.3 – 2020-06-09

  • Better error handling when issuing label
  • Tested up to WooCommerce 4.3.0

#### 1.2 – 2020-05-05

  • Prevent issuing if the order doesn't need shipping
  • Refactor services declaration to allow filtering by developers
  • Fix on the EnviarEtiquetasEmail parameter
  • Fix fatal error on PHP below 7.3

#### 1.1 – 2020-03-29

  • Tracking information on WooCommerce emails (enabled by default)
  • New developer filters to prevent the shipping label issuing based on whatever rules the shop owner wants to implement

#### 1.0 – 2020-03-28

  • First release

Plugin Website
Visit website

Author
Unknown
Version:
14.4
Last Updated
April 25, 2026
Requires
WordPress 6.3
Tested Up To
WordPress 7.0
Requires PHP
7.4

Share Post

Join our newsletter.

Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.