我试图让客户只从每个类别中添加1件产品:牛仔裤,T恤等。我有这个代码,但所有我得到一个空白页。此代码检查分类slug和产品数量。
add_action( 'woocommerce_check_cart_items', 'check_total' );
function check_total() {
// Only run in the Cart or Checkout pages
if( is_cart() || is_checkout() ) {
global $woocommerce, $product;
$total_quantity = 0;
$display_notice = 1;
$i = 0;
//loop through all cart products
foreach ( $woocommerce->cart->cart_contents as $product ) {
// See if any product is from the cuvees category or not
if ( has_term( 'category-1', 'product_cat', $product['product_id'] )) {
$total_quantity += $product['quantity'];
}
}
// Set up the acceptable totals and loop through them so we don't have an ugly if statement below.
$acceptable_totals = array(1, 2, 3, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 72, 96, 120);
foreach($acceptable_totals as $total_check) {
if ( $total_check == $total_quantity ) { $display_notice = 0; }
}
foreach ( $woocommerce->cart->cart_contents as $product ) {
if ( has_term( 'category-1', 'product_cat', $product['product_id'] ) ) {
if( $display_notice == 1 && $i == 0 ) {
// Display our error message
wc_add_notice( sprintf( 'This product can only be sold in following quantities 1 | 2 | 3 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60 | 72 | 96 | 120.</p>', $total_quantity),
'error' );
}
$i++;
}
}
}
答案 0 :(得分:0)
你应该使用&#34; woocommerce_add_to_cart_validation&#34;挂钩以验证您的添加到购物车过程。
apply_filters( 'woocommerce_add_to_cart_validation', $true, $product_id, $quantity );