Add the Shop Manager username to Woocommerce Admin

2020-03-31 02:33发布

问题:

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:

回答1:

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..