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

如何在WordPress用户列表中添加显示每个用户WooCommerce商品数量的自定义列

如何在WordPress用户列表中添加显示每个用户WooCommerce商品数量的自定义列

我明白你的问题啦!你之前尝试直接替换字段名的方式没效果,是因为billing_country是WooCommerce客户对象自带的现成属性,但商品数量得咱们自己去查询计算,没法直接调用现有方法拿到。下面我给你调整好的代码,直接用就能实现需求:

代码实现(统计用户已购商品总数)

这个版本适合统计用户所有有效订单里的商品总数量,你可以按需调整订单状态的范围:

// 给用户列表添加新列
add_filter( 'manage_users_columns', 'add_user_item_count_column' );
function add_user_item_count_column( $columns ) {
    $columns['item_count'] = '商品数量'; // 这里是列表中显示的列标题,可自定义
    return $columns;
}

// 填充新列的内容
add_filter( 'manage_users_custom_column', 'populate_user_item_count_column', 10, 3 );
function populate_user_item_count_column( $content, $column, $user_id ) {
    if ( 'item_count' === $column ) {
        $total_items = 0;
        // 查询该用户的所有有效订单,这里默认包含已完成和处理中的订单,可按需修改
        $orders = wc_get_orders( array(
            'customer_id' => $user_id,
            'status' => array( 'wc-completed', 'wc-processing' ),
            'limit' => -1, // 不限制数量,获取所有符合条件的订单
        ) );
        
        // 遍历订单累加商品数量
        foreach ( $orders as $order ) {
            $total_items += $order->get_item_count();
        }
        
        $content = $total_items;
    }
    return $content;
}

如果你需要统计用户发布的商品数量(多商户/用户可发布产品场景)

如果你的需求是统计用户作为卖家发布的公开商品数量,就用下面这段代码:

// 给用户列表添加新列
add_filter( 'manage_users_columns', 'add_user_product_count_column' );
function add_user_product_count_column( $columns ) {
    $columns['product_count'] = '发布商品数量';
    return $columns;
}

// 填充新列的内容
add_filter( 'manage_users_custom_column', 'populate_user_product_count_column', 10, 3 );
function populate_user_product_count_column( $content, $column, $user_id ) {
    if ( 'product_count' === $column ) {
        // 查询该用户发布的所有公开商品
        $args = array(
            'post_type' => 'product',
            'post_status' => 'publish',
            'author' => $user_id,
            'posts_per_page' => -1,
            'fields' => 'ids', // 只获取ID,提升查询效率
        );
        $products = get_posts( $args );
        $content = count( $products );
    }
    return $content;
}

小提示

你可以根据自己的业务需求调整订单状态范围,比如要不要包含待付款、已取消的订单,只需要修改status数组里的参数就行(WooCommerce的订单状态前缀是wc-,比如待付款是wc-pending)。

备注:内容来源于stack exchange,提问作者vallespir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 12:03:17