In WooCommerce possiamo inviare agli utenti il nome del corriere e il tracking number usati nelle spedizioni.
Aggiungiamo una metabox con i campi per inserire il nome del corriere e il tracking number nel singolo ordine. Ricordiamo che in WooCommerce gli ordini sono custom post type:
add_action( 'add_meta_boxes', 'my_add_order_tracking_meta_box' );
function my_add_order_tracking_meta_box() {
add_meta_box( 'woocommerce-myplugin', 'Tracking', 'my_meta_box_view', 'shop_order', 'side', 'high');
}
function my_meta_box_view() {
global $post;
echo '<p class="form-field">';
woocommerce_wp_text_input(array(
'id' => 'my_carrier',
'label' => 'Corriere',
'placeholder' => 'Corriere',
'description' => 'Corriere',
'class' => '',
'value' => get_post_meta( $post->ID, '_my_carrier', true ),
));
echo '</p>';
echo '<p class="form-field">';
woocommerce_wp_text_input(array(
'id' => 'my_tracking_number',
'label' => 'Tracking Number',
'placeholder' => 'Tracking Number',
'description' => 'Tracking Number',
'class' => '',
'value' => get_post_meta( $post->ID, '_my_tracking_number', true ),
));
echo '</p>';
}
add_action( 'woocommerce_process_shop_order_meta', 'my_save_tracking_details_for_orders' );
function my_save_tracking_details_for_orders( $post_id ) {
if ( isset( $_POST['my_tracking_number'] ) ) {
update_post_meta( $post_id, '_my_carrier', wc_clean( $_POST['my_carrier'] ) );
update_post_meta( $post_id, '_my_tracking_number', wc_clean( $_POST['my_tracking_number'] ) );
}
}
Quindi aggiungiamo il nome del corriere e il tracking number all'email che viene inviata quando l'ordine รจ completato:
add_action( 'woocommerce_email_before_order_table', 'my_add_tracking' );
function my_add_tracking( $post ) {
if ( isset( $_POST['wc_order_action'] ) || isset ( $_POST['order_status'] ) ) {
$request = $_POST['wc_order_action'];
$request_status = $_POST['order_status'];
if( $request =='send_email_customer_completed_order' || $request_status == 'wc-completed' ) {
$carrier = get_post_meta( $post->ID, '_my_carrier', true );
$tracking = get_post_meta( $post->ID, '_my_tracking_number', true );
$html = '<p>Corriere: ' . $carrier . '<br>Tracking Number: ' . $tracking . '</p>';
echo $html;
}
}
}