WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

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'
				);
			}
		}
	}
}

Может кто знает, как сделать ограничения на минимальную сумму заказа из отдельных категорий?

0
Семен
11 февраля 2020

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация