导读:本期聚焦于小伙伴创作的《如何在WooCommerce后台为管理员显示商品实际库存数量》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在WooCommerce后台为管理员显示商品实际库存数量》有用,将其分享出去将是对创作者最好的鼓励。

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

如何在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

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。