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

WooCommerce按分类设置多商品合并最低购买量的技术求助

WooCommerce 按分类独立设置最低购买量限制

以下是优化后的代码,能实现每个分类独立统计购买总量并验证最低购买量的需求:

add_action('woocommerce_check_cart_items', 'custom_category_min_quantity_check');
function custom_category_min_quantity_check() {
    // 仅在购物车或结账页面执行检查
    if (!is_cart() && !is_checkout()) return;

    // 定义需要限制的分类slug和对应最低购买量,可根据需求修改
    $category_minimums = array(
        'shoes' => 10,      // 鞋子分类,最低10件
        'pants' => 10,      // 裤子分类,最低10件
        'shirts' => 10      // 衬衫分类,最低10件
    );

    // 初始化分类数量统计数组
    $category_quantities = array_fill_keys(array_keys($category_minimums), 0);

    // 遍历购物车商品,按分类累加数量
    foreach (WC()->cart->get_cart() as $cart_item) {
        $product_id = $cart_item['product_id'];
        $quantity = $cart_item['quantity'];

        // 获取商品所属的目标分类
        foreach (array_keys($category_minimums) as $category_slug) {
            if (has_term($category_slug, 'product_cat', $product_id)) {
                $category_quantities[$category_slug] += $quantity;
                // 商品可能属于多个分类,这里只统计第一个匹配的(根据需求调整)
                break;
            }
        }
    }

    // 检查每个分类的购买量是否达标
    foreach ($category_minimums as $category_slug => $min_quantity) {
        // 只有当该分类有商品在购物车时才检查
        if ($category_quantities[$category_slug] > 0 && $category_quantities[$category_slug] < $min_quantity) {
            // 获取分类名称用于提示信息
            $category = get_term_by('slug', $category_slug, 'product_cat');
            $category_name = $category ? $category->name : ucfirst($category_slug);

            wc_add_notice(
                sprintf(
                    '%s分类的商品需至少购买%d件,当前已购%d件,请补充后再提交订单。',
                    $category_name,
                    $min_quantity,
                    $category_quantities[$category_slug]
                ),
                'error'
            );
        }
    }
}

代码说明:

  • 可配置的限制规则:通过$category_minimums数组可以轻松添加或修改分类的最低购买量,只需填写分类slug和对应数量即可。
  • 独立统计分类数量:遍历购物车时,会将每个商品的数量累加到所属分类的统计项中,确保每个分类的数量单独计算。
  • 精准的错误提示:针对未达标的分类,会显示分类名称、最低要求和当前购买量,用户能清晰知道需要补充哪些商品。
  • 性能优化:仅在购物车和结账页面执行检查,避免不必要的资源消耗。

使用注意:

  1. 请将$category_minimums数组中的分类slug替换为你实际使用的分类别名(在WooCommerce分类编辑页面可以查看)。
  2. 如果商品可能属于多个需要限制的分类,可根据需求调整代码中break的位置,决定是否重复统计数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 09:25:31