I have a problem right now. I have a plugin that allows me to quickly change the status of my orders from the admin order list.
Unfortunately the name of the shop manager is not transmitted.
I think I've found the right code, but I don't know exactly how to do it.
Would be grateful for any help.
public function save_comment($order, $status_comment) {
$order->add_order_note("[[" . wc_get_order_status_name($order->post_status) . "|" . $status_comment . "]]");
}
Right now it looks like this :
I'd like to see which user changed the status as shown in this picture:
To add the username of the shop manager that has updated the Order to the order note, use the following:
add_filter( 'woocommerce_new_order_note_data', 'filter_woocommerce_new_order_note_data', 10, 2 );
function filter_woocommerce_new_order_note_data( $args, $args2 ) {
if( ! $args2['is_customer_note'] && is_user_logged_in() && current_user_can( 'edit_shop_order', $args2['order_id'] ) ){
$user = get_user_by( 'id', get_current_user_id() );
$args['comment_author'] = $user->display_name;
$args['comment_author_email'] = $user->user_email;
}
return $args;
}
Code goes in function.php file of your active child theme (or active theme). Tested and works..