Skip to content

Instantly share code, notes, and snippets.

@webdados
Last active November 19, 2020 14:38
Show Gist options
  • Save webdados/654f8508549fb760b65bec63c2123ddc to your computer and use it in GitHub Desktop.
Save webdados/654f8508549fb760b65bec63c2123ddc to your computer and use it in GitHub Desktop.
Create a DPD Portugal shipping label programmatically with the "DPD Portugal for WooCommerce" WordPress plugin
<?php
//You need this plugin: https://www.webdados.pt/wordpress/plugins/dpd-portugal-para-woocommerce-wordpress/
//Monitor the result (success) and do whatver you want with it - Needs to be set before running it
add_action( 'woo_dpd_portugal_label_issued', function( $order_id ) {
$order = wc_get_order( $order_id );
echo 'Label issued for order '.$order_id.' on '.$order->get_meta( '_woo_dpd_portugal_label_issued' ).'<br/>';
echo 'Tracking number(s): '.implode( ' / ', $order->get_meta( '_woo_dpd_portugal_tracking_number' ) ).'<br/>';
echo 'Label PDF URL: '.$order->get_meta( '_woo_dpd_portugal_pdf_url' ).'<br/>';
}, 10, 1 );
//Monitor the result (error) and do whatver you want with it - Needs to be set before running it
add_action( 'woo_dpd_portugal_label_issued_error', function( $order_id, $error_message ) {
//echo 'Label NOT issued for order '.$order_id.' - Error: '.$error_message;
wp_mail( 'email@domain', 'Label NOT issued for order '.$order_id, 'Error: '.$error_message );
}, 10, 2 );
//Set the service you want to use - recommended if you're issuing the label programmatically - Needs to be set before running it
add_filter( 'woo_dpd_portugal_shipment_data', function( $shipment_data, $order_id ) {
$shipment_data['service'] = 'dpd18'; //Or whatever...
return $shipment_data;
}, 10, 2 );
//Do it - Replace 16276 with your order id
do_action( 'woo_dpd_portugal_issue_label', 16276 );
//More information: https://www.webdados.pt/wordpress/plugins/dpd-portugal-para-woocommerce-wordpress/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment