You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce:如何为库存仅剩1件的商品自动添加分类?

WooCommerce自动添加库存/促销分类解决方案

原代码的作用是修改「促销」分类的查询逻辑,让该分类自动显示所有促销商品。但你需要的是自动给商品分配分类(而非仅修改查询结果),因此需要新增以下代码来实现需求:

实现逻辑说明

我们将借助商品保存、库存更新的钩子,实时检查商品的库存状态与促销状态,自动添加对应分类:

  • 当商品库存仅剩1件时,添加「库存紧张」分类(需先在后台创建该分类,替换代码中的分类slug)
  • 当商品库存仅剩1件且处于促销状态时,添加「最后机会促销」分类(同样需先在后台创建该分类)

完整代码

/**
 * 自动为库存仅剩1件的商品添加分类,为库存1件的促销商品添加「最后机会促销」分类
 */

// 钩子:商品保存或库存更新时触发
add_action( 'woocommerce_update_product', 'auto_assign_stock_sale_categories' );
add_action( 'woocommerce_product_set_stock', 'auto_assign_stock_sale_categories' );

function auto_assign_stock_sale_categories( $product_id ) {
    // 获取商品对象
    $product = wc_get_product( $product_id );
    if ( ! $product ) return;

    // 定义需要使用的分类slug(请替换为你后台创建的分类slug)
    $low_stock_cat_slug = 'low-stock-1'; // 库存仅剩1件的分类slug
    $last_chance_cat_slug = 'last-chance-sale'; // 最后机会促销分类slug

    // 获取当前商品的库存数量
    $stock_qty = $product->get_stock_quantity();
    // 判断是否为促销商品
    $is_on_sale = $product->is_on_sale();

    // 先移除旧的分类(避免重复添加)
    wp_remove_object_terms( $product_id, $low_stock_cat_slug, 'product_cat' );
    wp_remove_object_terms( $product_id, $last_chance_cat_slug, 'product_cat' );

    // 条件1:库存仅剩1件
    if ( $stock_qty === 1 ) {
        // 添加库存紧张分类
        wp_add_object_terms( $product_id, $low_stock_cat_slug, 'product_cat' );

        // 条件2:库存1件且是促销商品
        if ( $is_on_sale ) {
            // 添加最后机会促销分类
            wp_add_object_terms( $product_id, $last_chance_cat_slug, 'product_cat' );
        }
    }
}

使用说明

  1. 先在WooCommerce后台的「产品 > 分类」中创建两个分类:
    • 分类1:例如名称「库存紧张」,slug设置为low-stock-1(或自定义,需和代码中一致)
    • 分类2:例如名称「最后机会促销」,slug设置为last-chance-sale(或自定义,需和代码中一致)
  2. 将上述代码添加到你的主题functions.php文件中,或使用自定义代码插件(如Code Snippets)
  3. 当商品库存变为1件时,系统会自动添加对应分类;当库存变化(如补货或售罄)时,会自动移除这些分类

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:23:18