Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save yanknudtskov/a06981f59ba6e93446a32365843f22fe to your computer and use it in GitHub Desktop.
Save yanknudtskov/a06981f59ba6e93446a32365843f22fe to your computer and use it in GitHub Desktop.
WooCommerce Shipmondo Track and Trace on Orders and Emails
<?php
/**
* Display track and trace if available
*/
add_filter( 'woocommerce_admin_order_preview_get_order_details', 'yanco_woocommerce_admin_order_preview_track_and_trace', 8, 2 );
function yanco_woocommerce_admin_order_preview_track_and_trace( $args, $order ) {
$order_id = $order->get_id();
$carrier = get_post_meta( $order_id, 'carrier', true );
$tracking_url = get_post_meta( $order_id, 'tracking_url', true );
if ( $tracking_url ) {
$payment_via_string = $args['payment_via'];
$payment_via_string .= '<strong>' . __('Track & Trace', 'yanco_child_theme') . '</strong>';
if( $carrier ) {
$payment_via_string .= '<span><a href="' . $tracking_url . '" target="_blank">' . $carrier . '</a></span><br />';
} else {
$payment_via_string .= '<span><a href="' . $tracking_url . '" target="_blank">' . $tracking_url . '</a></span><br />';
}
}
$payment_via_string .= '<br />';
$args['payment_via'] = $payment_via_string;
return $args;
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'yanco_woocommerce_admin_order_meta_track_and_trace', 10, 1 );
function yanco_woocommerce_admin_order_meta_track_and_trace( $order ) {
$order_id = $order->get_id();
$carrier = get_post_meta( $order_id, 'carrier', true );
$tracking_url = get_post_meta( $order_id, 'tracking_url', true );
$track_and_trace_string = '';
if ( $tracking_url ) {
$track_and_trace_string .= '<strong>' . __('Track & Trace', 'yanco_child_theme') . '</strong>';
$track_and_trace_string .= '<br />';
if( $carrier ) {
$track_and_trace_string .= '<span><a href="' . $tracking_url . '" target="_blank">' . $carrier . '</a></span><br />';
} else {
$track_and_trace_string .= '<span><a href="' . $tracking_url . '" target="_blank">' . $tracking_url . '</a></span><br />';
}
echo $track_and_trace_string;
}
}
add_filter( 'woocommerce_my_account_my_orders_actions', 'yanco_add_my_account_order_track_and_trace_action', 10, 2 );
function yanco_add_my_account_order_track_and_trace_action( $actions, $order ) {
$order_id = $order->get_id();
$carrier = get_post_meta( $order_id, 'carrier', true );
$tracking_url = get_post_meta( $order_id, 'tracking_url', true );
if( $tracking_url ) {
$actions['yanco-track-and-trace'] = array(
'url' => $tracking_url,
'name' => 'Track & Trace',
'target' => '_blank',
);
}
return $actions;
}
add_action( 'woocommerce_order_details_after_order_table', 'yanco_track_and_trace_woocommerce_order_details_after_order_table', 10, 1 );
function yanco_track_and_trace_woocommerce_order_details_after_order_table( $order ) {
$order_id = $order->get_id();
$carrier = get_post_meta( $order_id, 'carrier', true );
$tracking_url = get_post_meta( $order_id, 'tracking_url', true );
$button = '';
if ( $tracking_url ) {
$button .= '<h2>' . __('Track & Trace', 'yanco_child_theme') . '</h2>';
if( $carrier ) {
$button .= '<a class="button" href="' . $tracking_url . '" target="_blank">' . $carrier . '</a>';
} else {
$button .= '<a class="button" href="' . $tracking_url . '" target="_blank">' . $tracking_url . '</a>';
}
echo $button;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment