WooCommerce- Минимальная сумма заказа для определенных категории
Стоит задача поставить на некоторые категории с товарами минимальную сумму заказа в WooCommerce.
Например, есть 5 категорий с товарами, и нужно, чтобы если клиент попытался купить товары из любой из этих категорий менее чем на (нужную сумму), ему в корзине выдавалось предупреждение, что минимальный заказ от .. и он не мог сделать заказ и оплату пока не положит товаров на установленную минимальную сумму с корзине. Для других категорий ограничений минималки нет.
Нашел код в сети, но там такой код, что ограничения нужно делать для каждой категории, то есть если категорий несколько нужно копировать несколько раз код. И непонятно, как он отработает, если из разных категорий с минимальной суммой, положится товар по немного но общая сумма в корзине будет минималка.
add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' );
function wc_minimum_order_amount() {
// minimum order value
$minimum = 2000;
if ( WC()->cart->total < $minimum ) {
if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
$products_min = false;
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
$_product_id = $_product->id;
$terms = get_the_terms( $_product_id, 'product_cat' );
foreach ($terms as $term) {
$_categoryid = $term->term_id;
}
// your products categories
if ( $_categoryid === 114 ) {
$products_min = true;
}
}
if( ( is_cart() || is_checkout() ) && $products_min ) {
wc_print_notice(
sprintf( 'You must have an order with a minimum of %s to place your order, your current order total is %s.' ,
wc_price( $minimum ),
wc_price( WC()->cart->total )
), 'error'
);
}
}
}
}
Может кто знает, как сделать ограничения на минимальную сумму заказа из отдельных категорий?