You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改WooCommerce后台订单列代码,显示用户登录名而非用户ID?

修改WooCommerce后台订单列表列,显示用户登录名

你需要对原有代码做两处核心调整,同时兼容匿名订单场景:

  • 将列标题替换为中文「客户」,并优化列标识的语义化
  • 通过订单关联的用户ID获取用户对象,提取并显示用户登录名

修改后的完整代码如下:

add_filter( 'manage_edit-shop_order_columns', 'add_new_order_admin_list_column' ); 
function add_new_order_admin_list_column( $columns ) { 
    $columns['customer_login'] = '客户'; 
    return $columns; 
} 

add_action( 'manage_shop_order_posts_custom_column', 'add_new_order_admin_list_column_content' ); 
function add_new_order_admin_list_column_content( $column ) { 
    global $post; 
    if ( 'customer_login' === $column ) { 
        $order = wc_get_order( $post->ID ); 
        $user_id = $order->get_user_id();
        
        // 区分已登录用户和匿名订单
        if ( $user_id > 0 ) {
            $user = get_user_by( 'id', $user_id );
            echo esc_html( $user->user_login );
        } else {
            echo '匿名客户';
        }
    } 
}

关键修改细节:

  1. 列信息优化:把原有的user_id列标识改为customer_login,更贴合实际显示内容;同时将列标题从Kunde改为「客户」,符合中文后台需求
  2. 登录名获取逻辑:
    • 先获取订单的用户ID,判断是否为已登录用户(ID大于0)
    • 已登录用户通过get_user_by()方法获取用户对象,输出其user_login字段,并用esc_html()避免XSS风险
    • 匿名订单(用户ID为0)时,显示「匿名客户」的友好提示

内容的提问来源于stack exchange,提问作者martnek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 22:12:37