WooCommerce作为WordPress生态中最常用的电商插件,默认的库存显示逻辑在后台商品列表页仅展示库存状态提示,比如有货、缺货或者低库存,不会直接显示具体的库存数量,对于需要频繁核对库存的管理员来说不够便捷。我们可以通过自定义代码的方式调整后台显示规则,让精确库存数量直接展示在商品列表的对应列中。

实现原理说明
WooCommerce的后台商品列表是通过WordPress的文章列表钩子扩展实现的,我们可以借助manage_product_posts_columns钩子新增库存数量列,再通过manage_product_posts_custom_column钩子向该列填充对应商品的库存数据。整个逻辑不需要修改WooCommerce的核心文件,只需要将代码添加到主题的functions.php文件中即可,后续主题更新也不会丢失修改。
具体实现步骤
步骤1:新增库存数量列
首先我们需要在商品列表的表头新增一个库存数量的列,方便后续填充数据。添加以下代码到主题的functions.php文件:
<?php
/**
* 为WooCommerce后台商品列表新增库存数量列
* @param array $columns 原有列数组
* @return array 新增后的列数组
*/
function add_product_stock_column($columns) {
// 在库存状态列之后插入新的库存数量列
$new_columns = array();
foreach ($columns as $key => $value) {
$new_columns[$key] = $value;
if ($key === 'is_in_stock') {
$new_columns['product_stock_quantity'] = '精确库存数量';
}
}
return $new_columns;
}
add_filter('manage_product_posts_columns', 'add_product_stock_column');
?>
步骤2:填充库存数量数据
列头添加完成后,需要给每一行商品填充对应的库存数值,这里需要区分简单商品和变体商品的库存获取逻辑,添加以下代码到functions.php:
<?php
/**
* 向库存数量列填充对应商品的库存数据
* @param string $column 当前列名
* @param int $post_id 商品ID
*/
function fill_product_stock_column($column, $post_id) {
if ($column === 'product_stock_quantity') {
// 获取商品对象
$product = wc_get_product($post_id);
if (!$product) {
echo '-';
return;
}
// 判断商品类型获取库存
if ($product->is_type('variable')) {
// 变体商品获取所有子商品库存总和
$children = $product->get_children();
$total_stock = 0;
foreach ($children as $child_id) {
$child_product = wc_get_product($child_id);
if ($child_product && $child_product->managing_stock()) {
$total_stock += $child_product->get_stock_quantity();
}
}
echo $total_stock;
} else {
// 简单商品直接获取库存
if ($product->managing_stock()) {
echo $product->get_stock_quantity();
} else {
echo '未管理库存';
}
}
}
}
add_action('manage_product_posts_custom_column', 'fill_product_stock_column', 10, 2);
?>
步骤3:验证效果
代码添加完成后,进入WordPress后台的WooCommerce-商品页面,即可看到商品列表新增了精确库存数量列,每个商品的对应库存数值会直接展示出来。如果是变体商品,会显示所有变体的库存总和,方便管理员快速核对总库存。
注意事项
- 修改代码前建议先备份functions.php文件,避免代码错误导致网站报错
- 如果使用的是子主题,建议将代码添加到子主题的functions.php中,避免父主题更新后代码丢失
- 如果商品没有开启库存管理功能,会显示未管理库存的提示,需要先在商品编辑页开启管理库存选项
- 代码仅对管理员角色生效,普通店铺员工如果没有对应权限不会看到该列
常见问题解答
问:代码添加后没有显示新列怎么办
首先检查代码是否完整添加到functions.php中,没有遗漏分号或者括号。如果还是不显示,可以清空网站缓存和浏览器缓存后重新进入商品列表页查看。
问:变体商品的库存总和计算不准确怎么办
检查变体商品是否都开启了库存管理功能,只有开启了管理库存的变体才会被计入总和,未开启的变体不会统计到数量中。
这种修改方式不会影响前台的库存显示逻辑,仅对后台管理员可见,不会影响普通用户的购物体验。
WooCommerce商品库存精确库存后台定制WordPress_钩子修改时间:2026-06-13 22:27:34