WooCommerce默认的库存显示逻辑会结合库存设置、预售规则等调整展示内容,有时候管理员需要直接看到商品的实际库存数量,方便快速核对库存情况,不需要额外计算或切换页面查看。下面介绍通过自定义代码实现该功能的方法,仅在管理员后台生效,不会影响前端用户的商品页面展示。

实现原理说明
我们可以通过WooCommerce提供的商品列表列自定义钩子,判断当前登录用户是否为管理员,如果是管理员则在商品列表的库存列中追加显示实际库存数量,普通用户和管理员在前端查看时都不会受到影响。
具体实现步骤
第一步:添加自定义代码到主题函数文件
打开当前使用主题的functions.php文件,或者子主题的functions.php文件,添加以下代码:
// 为WooCommerce商品列表添加实际库存显示(仅管理员可见)
add_filter('manage_edit-product_columns', 'add_actual_stock_column');
function add_actual_stock_column($columns) {
// 在库存列后面插入实际库存列
$new_columns = array();
foreach ($columns as $key => $value) {
$new_columns[$key] = $value;
if ($key == 'is_in_stock') {
$new_columns['actual_stock'] = '实际库存';
}
}
return $new_columns;
}
add_action('manage_product_posts_custom_column', 'show_actual_stock_column_content');
function show_actual_stock_column_content($column) {
global $post;
if ($column == 'actual_stock') {
// 判断当前用户是否为管理员
if (current_user_can('manage_options')) {
$product = wc_get_product($post->ID);
// 获取商品实际库存数量
$actual_stock = $product->get_stock_quantity();
if ($actual_stock !== null) {
echo '<strong>' . $actual_stock . '</strong>';
} else {
echo '未设置库存';
}
} else {
echo '-';
}
}
}第二步:验证功能效果
保存代码后,登录WooCommerce后台,进入商品列表页面,如果你当前账号是管理员,会看到库存列后面新增了实际库存列,里面显示的就是商品的实际库存数量。如果是普通编辑账号或者退出登录在前端查看商品,都不会看到这个新增的列。
注意事项
- 修改主题函数文件前建议先备份文件,避免代码错误导致网站异常。
- 如果使用子主题,优先将代码添加到子主题的
functions.php中,避免主题更新时代码被覆盖。 - 如果商品设置了多库存单位或者变体商品,上述代码会显示当前商品的总实际库存,如果需要单独显示每个变体的实际库存,可以额外添加变体商品的处理逻辑。
- 若后续不需要该功能,直接删除添加的代码即可,不会对网站其他功能造成影响。
常见问题解答
代码添加后没有显示实际库存列怎么办
首先检查代码是否完整粘贴,没有遗漏分号或者括号,然后清除网站缓存和浏览器缓存,重新登录后台查看。如果还是不显示,检查当前登录账号是否有管理员权限,只有管理员账号才能看到该列。
可以修改实际库存列的显示位置吗
可以,在add_actual_stock_column函数中,调整if ($key == 'is_in_stock')这个条件里的列键名,就可以把实际库存列放到其他列的后面,比如改成if ($key == 'price')就会放到价格列后面。
注意:所有代码中的HTML标签如<strong>都需要按照转义规则编写,避免和PHP语法冲突,上述代码已经做了正确的转义处理,可以直接使用。
WooCommerce商品库存后台显示管理员权限自定义代码修改时间:2026-06-05 04:19:49