讲师中心 微信公众号
AI工具推荐 视频效率加速

WooCommerce:在特定分类中显示缺货商品的实战教程

夜涛同学_9059

夜涛同学_9059

发布时间:2025-11-17 13:01:16

|

679人浏览过

|

来源于php中文网

原创

WooCommerce:在特定分类中显示缺货商品的实战教程

本教程详细介绍了如何在woocommerce中,通过使用wordpress的过滤器,覆盖全局的“隐藏缺货商品”设置。这使得网站管理员能够实现在特定商品分类页面中依然显示库存为零的商品,从而为用户提供更灵活的商品浏览体验,同时保持对其他分类的全局隐藏规则。

理解WooCommerce缺货商品显示机制

WooCommerce提供了一个非常实用的库存管理功能,允许网站管理员全局设置是否在商店页面和分类列表中隐藏缺货商品。这个设置通常位于“WooCommerce” -> “设置” -> “产品” -> “库存”选项卡下,名为“隐藏缺货商品”。当此选项被勾选时,所有库存为零的商品将不会出现在网站的任何产品列表页面,包括分类页面、商店页面和搜索结果中。

然而,在某些业务场景下,您可能希望在特定的分类页面中,即使商品缺货,也依然能够显示它们。例如,您可能有一个“预售商品”或“即将补货”的分类,希望用户能够看到这些商品,并了解它们目前的状态,而不是完全隐藏它们。在这种情况下,我们需要一种方法来局部覆盖全局的隐藏设置。

解决方案:利用WordPress过滤器

WordPress和WooCommerce的强大之处在于其丰富的钩子(hooks)系统,包括动作(actions)和过滤器(filters)。我们可以利用特定的过滤器来修改WooCommerce在决定是否隐藏缺货商品时的行为。

本教程将使用 pre_option_woocommerce_hide_out_of_stock_items 过滤器。这个过滤器在WooCommerce读取“隐藏缺货商品”设置之前触发,允许我们动态地改变这个选项的值。通过检测当前访问的页面是否为我们指定的分类页面,我们可以选择性地关闭隐藏功能。

实现步骤与代码示例

要实现这一功能,您需要将以下代码添加到您的WordPress主题的 functions.php 文件中,或者更推荐的做法是,将其添加到您自定义的插件中。

步骤1:添加代码到您的网站

Feihong Word Docx
Feihong Word Docx

创建、检查和编辑 Microsoft Word 文档和 DOCX 文件,支持样式、编号、修订追踪、表格、分节及兼容性检查

下载

打开您的主题(推荐使用子主题)的 functions.php 文件,并将以下代码复制粘贴到文件末尾。

/**
 * 针对特定WooCommerce分类,覆盖全局的“隐藏缺货商品”设置
 *
 * 当访问指定分类页面时,即使全局设置了隐藏缺货商品,
 * 也会强制显示这些商品。
 *
 * @param string $hide 当前“隐藏缺货商品”设置的值 ('yes' 或 'no')。
 * @return string 修改后的设置值。
 */
add_filter( 'pre_option_woocommerce_hide_out_of_stock_items', 'bbloomer_hide_out_of_stock_exception_category' );

function bbloomer_hide_out_of_stock_exception_category( $hide ) {
    // 替换 'specific-category' 为您希望显示缺货商品的分类的slug。
    // 如果是多个分类,可以使用数组:if ( is_product_category( array( 'category-one', 'category-two' ) ) )
    if ( is_product_category( 'specific-category' ) ) {
        $hide = 'no'; // 将隐藏设置改为 'no',即不隐藏缺货商品
    }   
    return $hide;
}

步骤2:自定义分类Slug

在上面的代码中,请务必将 'specific-category' 替换为您实际希望显示缺货商品的分类的slug。分类的slug是其在URL中显示的短名称,通常在“产品” -> “分类”编辑页面中可以找到。

例如,如果您的分类URL是 yourdomain.com/product-category/pre-order/,那么其slug就是 pre-order。

如果您需要对多个分类应用此规则,可以将 is_product_category() 函数的参数改为一个数组,例如:

if ( is_product_category( array( 'pre-order', 'clearance-items', 'limited-edition' ) ) ) {
    $hide = 'no';
}

代码解析

  • add_filter( 'pre_option_woocommerce_hide_out_of_stock_items', 'bbloomer_hide_out_of_stock_exception_category' );
    • 这行代码将我们的自定义函数 bbloomer_hide_out_of_stock_exception_category 挂载到 pre_option_woocommerce_hide_out_of_stock_items 过滤器上。这意味着每当WooCommerce尝试获取“隐藏缺货商品”的全局设置时,都会先执行我们的函数。
  • function bbloomer_hide_out_of_stock_exception_category( $hide ) { ... }
    • 这是我们的自定义函数,它接收一个参数 $hide,该参数代表了WooCommerce全局设置中“隐藏缺货商品”的当前值('yes' 或 'no')。
  • if ( is_product_category( 'specific-category' ) ) { ... }
    • is_product_category() 是一个条件标签,用于检测当前页面是否为指定的WooCommerce产品分类页面。
    • 如果当前页面是我们指定的分类页面,条件为真。
  • $hide = 'no';
    • 当条件为真时,我们将 $hide 的值设置为 'no'。这意味着,对于当前这个特定的分类页面,WooCommerce将不会隐藏缺货商品,即使全局设置是隐藏的。
  • return $hide;
    • 函数最后返回 $hide 的值。这个值将作为最终的“隐藏缺货商品”设置被WooCommerce使用。

高级应用与注意事项

  1. 使用子主题: 强烈建议在子主题的 functions.php 文件中添加代码,而不是直接修改父主题。这样可以确保在主题更新时您的更改不会丢失。
  2. 分类Slug的准确性: 确保您输入的分类slug是准确无误的,区分大小写(尽管通常slug是小写的)。错误的slug会导致代码无法生效。
  3. 测试: 在将代码部署到生产环境之前,务必在开发或测试环境中进行充分测试。检查指定分类页面和非指定分类页面的缺货商品显示情况。
  4. 性能影响: 此类过滤器通常对网站性能影响微乎其微,因为它们只在特定条件下执行简单的逻辑判断。
  5. 用户体验: 在特定分类中显示缺货商品时,考虑通过CSS或文本提示(例如“缺货,即将补货”)来明确告知用户商品的库存状态,以避免混淆。

总结

通过利用WooCommerce提供的过滤器,我们可以轻松地实现对缺货商品显示规则的精细控制。上述方法允许您在保持全局设置不变的前提下,为特定分类创建例外规则,从而更好地满足多样化的业务需求和用户体验目标。这种灵活性是WordPress和WooCommerce作为强大电商平台的重要体现。

热门AI工具

更多
Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

相关专题

更多
function是什么
function是什么

function是函数的意思,是一段具有特定功能的可重复使用的代码块,是程序的基本组成单元之一,可以接受输入参数,执行特定的操作,并返回结果。本专题为大家提供function是什么的相关的文章、下载、课程内容,供大家免费下载体验。

2500

2023.08.04

js函数function用法
js函数function用法

js函数function用法有:1、声明函数;2、调用函数;3、函数参数;4、函数返回值;5、匿名函数;6、函数作为参数;7、函数作用域;8、递归函数。本专题提供js函数function用法的相关文章内容,大家可以免费阅读。

434

2023.10.07

wordpress seo
wordpress seo

WordPress网站SEO优化方法有:1、选择一个SEO友好的主题,具有清晰的代码结构,快速的加载速度和响应式设计;2、使用SEO插件,优化你的标题标签,元描述,关键字,XML站点地图等;3、优化你的内容,内容是SEO优化的核心;4、优化你的网站速度;5、创建友好的URL;6、使用内部链接;7、优化图像;8、使用社交媒体;9、定期更新你的网站;10、监控和分析你的网站等等。

4395

2023.09.18

wordpress下载后怎么安装
wordpress下载后怎么安装

安装前准备:确保服务器满足要求、获取安装文件、创建数据库。上传 wordpress 文件。创建数据库和用户。运行安装程序:选择语言、输入数据库信息、网站标题和管理员信息。安装 wordpress。安装后配置:设置永久链接、安装主题、安装插件、创建内容。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4539

2024.04.15

WordPress插件教程
WordPress插件教程

本专题整理热门WordPress插件资源,涵盖SEO优化、缓存加速、安全防护、表单管理、电商扩展等插件推荐与使用教程。

218

2026.06.16

WordPress建站教程大全
WordPress建站教程大全

本专题汇总WordPress教程相关内容,包括WordPress安装教程、建站教程、使用技巧、网站管理经验和实战案例,帮助用户快速掌握WordPress建站与运营方法。

440

2026.06.16

WordPress开发教程
WordPress开发教程

本专题提供WordPress开发技术资料,包括主题开发、插件开发、自定义功能开发、API调用及性能优化等内容。

598

2026.06.16

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

20

2026.09.21

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

0

2026.09.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 5.6万人学习

CSS教程
CSS教程

共754课时 | 93.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn