针对woocommerce中的特定产品添加到购物车验证钩子

时间:2018-06-04 11:56:41

标签: php wordpress validation woocommerce product

我的网站上有2个产品。其中,对于1个产品,如果用户选择的数量超过3个,我应该显示错误信息。但对于其他产品,数量没有限制。 我怎么能实现这个目标呢?

我使用了以下代码:

add_action( 'woocommerce_add_to_cart_validation', 'wc_add_to_cart_validation', 11, 3 ); 
function wc_add_to_cart_validation( $passed, $product_id, $quantity ) {

if ( $quantity > 3 ){
wc_add_notice( __( 'Only 3 or less quantities allowed, please contact us on (937) 606-4258.', 'woocommerce' ), 'error' );
$passed = false;
}
return $passed;
}

但是代码反映了这两种产品。 我希望仅在一个产品上执行操作 请帮忙

1 个答案:

答案 0 :(得分:2)

要定位特定产品ID(您将在代码中定义),请尝试以下方式:

add_action( 'woocommerce_add_to_cart_validation', 'conditional_add_to_cart_validation', 15, 3 ); 
function conditional_add_to_cart_validation( $passed, $product_id, $quantity ) {
    // HERE below define your specific product ID
    $specific_product_id = 37;

    if ( $quantity > 3 && $product_id == $specific_product_id ){
        wc_add_notice( __( 'Only 3 or less quantities allowed, please contact us on (937) 606-4258.', 'woocommerce' ), 'error' );
        $passed = false;
    }
    return $passed;
}

代码放在活动子主题(或活动主题)的function.php文件中。经过测试和工作。