DPD Portugal for WooCommerce

Changelog

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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with WordPress 6.9-alpha-60417 and WooCommerce 10.0

13.2 – 2025-07-02

  • [FIX] Label PDF download on our demo sites
  • [DEV] Tested with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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 with WooCommerce 6.8 and WordPress 6.1-alpha-53862

3.9.0 – 2022-05-05

  • **New brand: PT Woo Plugins 🎉**
  • Tested with 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 with 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 with 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 with 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 with 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 with 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 with WooCommerce 5.3.0

3.5.3 – 2021-04-29

  • Fix a fatal error on PHP 7.2 and below
  • Tested with 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 with 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 with 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 with 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 with 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 with 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 with 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 with 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

Version:
14.3
Last Updated
March 31, 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.