WooCommerce库存变动时自动修改产品标签的实现方案
WooCommerce自动给低库存产品添加「Last Chance」标签解决方案
我运营着一家WooCommerce店铺,目前每日需查看库存不足产品的邮件通知,手动登录后台找到对应产品,添加“Last Chance”标签以提醒用户该商品库存即将耗尽,建议尽快购买。此重复工作希望实现自动化,请问能否创建webhook,在产品库存降至低库存阈值时自动添加该标签?WooCommerce似乎应具备原生功能,但未找到对应设置。伪代码如下:
IF PRODUCT QUANTITY = 'low' ADD TAG 'Last Chance' TO PRODUCT
WooCommerce确实没有原生的「低库存自动加标签」设置,但无需使用webhook,通过自定义PHP代码利用其内置钩子就能直接实现自动化,效率更高。
实现方案
1. 添加自定义代码
将以下代码添加到子主题的functions.php文件,或使用自定义代码插件(如Code Snippets)来管理,避免主题更新丢失代码:
// 监听产品及变体库存更新事件 add_action( 'woocommerce_product_set_stock', 'auto_manage_last_chance_tag', 10, 1 ); add_action( 'woocommerce_variation_set_stock', 'auto_manage_last_chance_tag', 10, 1 ); function auto_manage_last_chance_tag( $product ) { // 获取后台设置的低库存阈值,默认设为2 $low_stock_threshold = get_option( 'woocommerce_notify_low_stock_amount', 2 ); // 获取当前产品库存数量 $current_stock = $product->get_stock_quantity(); // 定义标签的别名和名称 $tag_slug = 'last-chance'; $tag_name = 'Last Chance'; // 检查标签是否存在,不存在则自动创建 if ( ! term_exists( $tag_slug, 'product_tag' ) ) { wp_insert_term( $tag_name, 'product_tag', array( 'slug' => $tag_slug ) ); } // 根据库存状态添加/移除标签 if ( $current_stock <= $low_stock_threshold && $current_stock > 0 ) { wp_set_object_terms( $product->get_id(), $tag_slug, 'product_tag', true ); } else { wp_remove_object_terms( $product->get_id(), $tag_slug, 'product_tag' ); } }
2. 配置低库存阈值
登录WooCommerce后台,进入「WooCommerce > 设置 > 产品 > 库存」,设置「低库存通知数量」为你希望触发标签的阈值(比如2),代码会自动读取这个设置值。
3. 验证功能
- 修改任意产品的库存数量,使其低于设置的阈值,刷新产品页面即可看到「Last Chance」标签自动添加
- 将库存恢复到阈值以上,标签会自动移除
注意事项
- 代码支持简单产品和可变产品的变体库存监控
- 如果需要仅针对特定分类的产品生效,可以在函数中添加分类判断逻辑
- 避免直接修改父主题的
functions.php,建议使用子主题或代码插件管理自定义代码
内容的提问来源于stack exchange,提问作者xar86413
相关产品推荐
相关产品推荐

