问题
I am looking to display the last Order Note, currently only viewable via Admin in Woocommerce, on the customer side in their Order History.
So they can view the tracking number we add in after the order is set as complete.
https://example.com/my-account/view-order/135/
We add a customer note by first setting the order as COMPLETE via the Woocommerce API then adding an order note with the tracking link. So the tracking ref will always be the last item.
How can I show the last Order Note on the customer order history? No plugins seem to exist for Order Notes to be shown on the customer side.
Ideal outcome:
回答1:
The following will display last admin order note to my account view orders pages:
add_filter( 'woocommerce_get_order_item_totals', 'account_view_order_last_order_note', 10, 3 );
function account_view_order_last_order_note( $total_rows, $order, $tax_display ){
// For "completed" orders on my account view order pages
if( $order->has_status('completed') && is_wc_endpoint_url( 'view-order' ) ){
// Get last order note
$latest_notes = wc_get_order_notes( array(
'order_id' => $order->get_id(),
'limit' => 1,
'orderby' => 'date_created_gmt',
) );
$latest_note = current( $latest_notes );
if ( isset( $latest_note->content ) ) {
// Add a new row for tracking
$total_rows['order_tracking'] = array(
'label' => __('Tracking:','woocommerce'),
'value' => $latest_note->content
);
}
}
return $total_rows;
}
Code goes in function.php file of your active child theme (or active theme). Tested and works.
来源:https://stackoverflow.com/questions/55813313/display-last-woocommerce-admin-order-note-in-customers-order-history