Я тестировал этот код на своем веб-сайте Wordpress / Woocommerce
add_filter( 'woocommerce_add_to_cart_validation', 'add_to_cart_validation_callback', 10, 3 );
function add_to_cart_validation_callback( $passed, $product_id, $quantity) {
// HERE set your alert text message
$message = __( 'ohoh dit gaat niet', 'woocommerce' );
if( ! WC()->cart->is_empty() ) {
// Get the product category terms for the current product
$terms_slugs = wp_get_post_terms( $product_id, 'product_cat', array('fields' => 'slugs'));
// Loop through cart items
foreach (WC()->cart->get_cart() as $cart_item ){
if( has_term( $terms_slugs, 'product_cat', $cart_item['product_id'] )) {
$passed = false;
wc_add_notice( $message, 'error' );
break;
}
}
}
return $passed;
}
с этим кодом, вы можете купить что-то только из одной категории. Я ищу что-то подобное
У меня есть 4 категории - Дом - Сад - Одежда - игрушки
Если пользователь кладет товар в корзину из игрушек, он не может что-то выкупить другая категория.
Но если пользователь кладет товар в корзину из сада, он может объединить это с категориями Дом и экипировка.
Резюме: пользователь может комбинировать товары из дома, сада, и снаряжение, но не с игрушками.