Я пытаюсь разрешить заказы только на сумму до 32 долларов для определенной категории (у нее есть несколько подкатегорий) или в комбинации из 4 подкатегорий (кофе1, популярные смеси, подписки, чай и шоколад).
На основании Минимальная сумма корзины для определенных категорий продуктов в Код ответа WooCommerce, вот мой код:
add_action( 'woocommerce_check_cart_items', 'check_cart_coffee_items' );
function check_cart_coffee_items() {
$categories = array('coffee'); // Defined targeted product categories
$threshold = 32; // Defined threshold amount
$cart = WC()->cart;
$cart_items = $cart->get_cart();
$subtotal = $cart->subtotal;
$subtotal -= $cart->get_cart_discount_total() + $cart->get_cart_discount_tax_total();
$found = false;
foreach( $cart_items as $cart_item_key => $cart_item ) {
// Check for specific product categories
if ( has_term( $categories, 'product_cat', $cart_item['product_id'] ) ) {
$found = true; // A category is found
break; // Stop the loop
}
}
if ( $found && $subtotal < $threshold ) {
// Display an error notice (and avoid checkout)
wc_add_notice( sprintf( __( "You must order at least %s of coffee" ), wc_price($threshold) ), 'error' );
}
}
Но я не могу заставить его работать ни для общей категории кофе, ни для каких-либо отдельных подкатегорий. Некоторая помощь приветствуется.