我想使用用户名更新订单的WooCommerce状态

时间:2019-03-05 07:04:27

标签: php wordpress woocommerce orders

I am able to update status using this code 在此图像中,突出显示的文本是当前登录用户的用户名,当我从仪表板更改状态时会显示我的姓名,但是当我使用代码更改状态时将不会显示任何名称。

我希望用户名应显示为以下屏幕截图:

Red boxed note

2 个答案:

答案 0 :(得分:0)

add_filter('woocommerce_new_order_note_data', 'modify_added_by');

function modify_added_by($args) {

    $user = get_user_by('id', get_current_user_id());
    $comment_author = $user->display_name;
    $comment_author_email = $user->user_email;
    $args['comment_author'] = $comment_author;
    $args['comment_author_email'] = $comment_author_email;
}

尝试此代码

答案 1 :(得分:0)

您可以使用以下挂钩函数在订单注释中获取商店经理的用户名:

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;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。

相关主题:Add the Shop Manager username to Woocommerce Admin Order notes