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

如何在WooCommerce后台所有产品页面显示产品属性及库存信息?

在WooCommerce后台产品列表添加属性、库存数量及状态列

实现步骤(无需插件)

直接通过添加代码到主题的functions.php文件(推荐使用子主题,避免主题更新丢失代码)即可实现:

1. 添加自定义列到后台产品列表

这段代码会在后台产品列表中新增三个列:产品属性、库存数量、库存状态:

add_filter( 'manage_product_posts_columns', 'custom_product_list_columns' );
function custom_product_list_columns( $columns ) {
    // 插入自定义列到标题列之后
    $new_columns = array();
    foreach ( $columns as $key => $value ) {
        $new_columns[ $key ] = $value;
        if ( $key === 'title' ) {
            $new_columns['product_attributes'] = '产品属性';
            $new_columns['stock_qty'] = '库存数量';
            $new_columns['stock_status'] = '库存状态';
        }
    }
    return $new_columns;
}

2. 填充自定义列的内容

这段代码会为新增的列填充对应的数据:

add_action( 'manage_product_posts_custom_column', 'custom_product_list_column_content', 10, 2 );
function custom_product_list_column_content( $column, $post_id ) {
    switch ( $column ) {
        case 'product_attributes':
            // 替换为你需要显示的产品属性slug(多个属性用数组形式添加)
            $target_attributes = array( 'pa_color', 'pa_size' );
            $attributes_html = '';
            foreach ( $target_attributes as $attr_slug ) {
                $terms = get_the_terms( $post_id, $attr_slug );
                if ( $terms && ! is_wp_error( $terms ) ) {
                    $attr_name = wc_attribute_label( $attr_slug );
                    $term_names = wp_list_pluck( $terms, 'name' );
                    $attributes_html .= "<strong>{$attr_name}:</strong> " . implode( ', ', $term_names ) . '<br>';
                }
            }
            echo $attributes_html ? $attributes_html : '无';
            break;
        case 'stock_qty':
            $product = wc_get_product( $post_id );
            echo $product->get_stock_quantity() ? $product->get_stock_quantity() : '0';
            break;
        case 'stock_status':
            $product = wc_get_product( $post_id );
            $status = $product->get_stock_status();
            echo $status === 'instock' ? '有货' : '缺货';
            break;
    }
}

3. 可选:设置库存列可排序

如果需要让库存数量和状态列支持排序,添加以下代码:

add_filter( 'manage_edit-product_sortable_columns', 'custom_product_sortable_columns' );
function custom_product_sortable_columns( $columns ) {
    $columns['stock_qty'] = 'stock_qty';
    $columns['stock_status'] = 'stock_status';
    return $columns;
}

add_action( 'pre_get_posts', 'custom_product_sortable_columns_query' );
function custom_product_sortable_columns_query( $query ) {
    if ( ! is_admin() || ! $query->is_main_query() ) {
        return;
    }
    $orderby = $query->get( 'orderby' );
    if ( 'stock_qty' === $orderby ) {
        $query->set( 'meta_key', '_stock' );
        $query->set( 'orderby', 'meta_value_num' );
    } elseif ( 'stock_status' === $orderby ) {
        $query->set( 'meta_key', '_stock_status' );
        $query->set( 'orderby', 'meta_value' );
    }
}

使用说明

  • 替换代码中$target_attributes数组里的属性slug为你实际需要显示的产品属性(属性slug可在WooCommerce后台的产品属性设置中查看)。
  • 代码添加完成后,刷新后台产品列表即可看到新增的列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 18:05:24