限制数量基础上的woocommerce结帐

时间:2016-01-07 13:01:53

标签: php wordpress woocommerce

我知道这个问题被问了很多次,但这有点不同 我想要做的是限制用户结账,如果数量在 1&之间。 50
我们的商店仅在数量超过50时进行交易。但我可以选择订购样品(仅1个样品)
因此,我希望在数量介于1和1之间时限制结帐。 50大于1但小于50 例如 -
PRODUCT-A只能以1或大于50的数量购买,但不能在1& 1之间购买。 50. 此条件适用于所有产品 没有插件满足这个条件 感谢

1 个答案:

答案 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 );