我知道这个问题被问了很多次,但这有点不同
我想要做的是限制用户结账,如果数量在 1&之间。 50
我们的商店仅在数量超过50时进行交易。但我可以选择订购样品(仅1个样品)
因此,我希望在数量介于1和1之间时限制结帐。 50大于1但小于50
例如 -
PRODUCT-A只能以1或大于50的数量购买,但不能在1& 1之间购买。 50.
此条件适用于所有产品
没有插件满足这个条件
感谢
答案 0 :(得分:2)
您需要进行一些自定义添加到购物车验证。以下是使用woocommerce_add_to_cart_validation
过滤器的示例。如果项目未通过测试,请将布尔值$passed
设置为false,并使用wc_add_notice()
添加错误通知。
function so_34655871_quantity_validation( $passed, $product_id, $quantity, $variation_id, $variations, $cart_item_data ) {
if ( $quantity > 1 && $quantity < 50 ) {
wc_add_notice( __( 'You must buy either 1 or more than 50.', 'your-textdomain' ), 'error' );
$passed = false;
}
return $passed;
}
add_filter( 'woocommerce_add_to_cart_validation', 'so_34655871_quantity_validation', 10, 6 );
更新购物车验证类似,但略有不同,因为woocommerce_update_cart_validation
过滤器传递了不同的变量。
function so_34655871_update_cart_quantity_validation( $passed, $cart_item_key, $values, $quantity ) {
if ( $quantity > 1 && $quantity < 50 ) {
wc_add_notice( __( 'You must buy either 1 or more than 50.', 'your-textdomain' ), 'error' );
$passed = false;
}
return $passed;
}
add_filter( 'woocommerce_update_cart_validation', 'so_34655871_update_cart_quantity_validation', 10, 4 );