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

如何修改WooCommerce代码仅限制指定商品不可重复购买?

解决方案

要实现仅限制指定产品ID只能购买一次、其余商品可多次购买的功能,你可以这样修改代码:

add_filter( 'woocommerce_add_to_cart_validation', 'restrict_specific_products_single_purchase', 10, 4 );
function restrict_specific_products_single_purchase( $passed, $product_id, $quantity, $variation_id = null ) {
    // 定义需要限制只能购买一次的产品ID数组,把你的目标ID填进去
    $restricted_product_ids = array( 123, 456, 789 );
    
    // 如果当前添加的产品不在限制列表里,直接通过验证
    if ( ! in_array( $product_id, $restricted_product_ids ) ) {
        return $passed;
    }
    
    $total_in_cart = 0;
    
    // 遍历购物车,统计当前限制产品已添加的数量
    foreach ( WC()->cart->get_cart() as $cart_item ) {
        if ( $cart_item['product_id'] === $product_id ) {
            $total_in_cart += $cart_item['quantity'];
        }
    }
    
    // 如果已购数量 + 当前要添加的数量超过1,阻止添加并提示错误
    if ( $total_in_cart + $quantity > 1 ) {
        wc_add_notice( __( '该商品仅允许购买一次,无法重复添加。', 'woocommerce' ), 'error' );
        return false;
    }
    
    return $passed;
}

关键说明:

  • $restricted_product_ids:把你需要限制的产品ID逐个添加到这个数组里,示例中的123、456为占位ID,替换成你的实际产品ID即可
  • 代码仅对数组内的产品生效购买限制,其余商品可正常多次添加到购物车
  • 当用户尝试重复添加限制类商品时,会弹出错误提示并阻止操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:04:58