从此答案: Max number of items in a cart based on product category in Woocommerce, 以下代码效果很好:
add_filter( 'woocommerce_add_to_cart_validation', 'only_four_items_allowed_add_to_cart', 10, 3 );
function only_four_items_allowed_add_to_cart( $passed, $product_id, $quantity ) {
$cart_count = WC()->cart->get_cart_contents_count();
$total_count = $cart_count + $quantity;
if ( has_term( 'quantity4','product_cat',$product_id ) && ( $cart_count >= 4 || $total_count > 4 ) ) {
$passed = false; // Set to false
$notice = __( "You Chose a Box of 4 Items, Can't Add More", "woocommerce" ); // Notice to display
}
elseif ( has_term( 'quantity6','product_cat',$product_id ) && ( $cart_count >= 6 || $total_count > 6 ) ) {
$passed = false; // Set to false
$notice = __( "You Chose a Box of 6 Items, Can't Add More", "woocommerce" ); // Notice to display
}
if( ! $passed )
wc_add_notice( $notice, 'error' );
return $passed;
}
我有2个问题:
当用户单击“添加到购物车”并且该操作使购物车中的物品总数超过了代码中设置的限制数量时,页面将重定向到该单个产品视图并显示错误消息。有没有办法让用户停留在同一页面上并显示错误消息?
我想不通的是,如果购物车中有特定产品,该如何编码该代码。我已经尝试过对项目($ in_cart)或尝试取消设置($ plugins [$ key])进行多种选择,但我承认我不知所措。
简而言之,如果购物车中有产品'123',则购物车中上述类别的产品数量限制不适用。
任何人都可以提供有关我还应该尝试什么的指南吗?
谢谢。