Запрещаем оформление заказа, если общий вес товаров в корзине слишком большой

В этом уроке мы сделаем невозможным оформление заказа в WooCommerce и выведем соответствующее сообщение, если общий вес товаров в корзине больше, чем нужно.

Это будет выглядеть примерно так:

Сообщение о слишком большом весе товаров в корзине WooCommerce
Если вес товаров в корзине больше 99кг, то выводим это сообщение об ошибке при попытке оформить заказ.

На самом делается это легче, чем вы можете себе представить.

Также, прежде, чем мы перейдём к коду, хочу порекомендовать вам два видеоурока, которые есть у меня на сайте – про корзину и про страницу оформления заказа WooCommerce.

А теперь код, который вы можете вставить в functions.php текущей, лучше дочерней темы.

add_action( 'woocommerce_after_checkout_validation', 'truemisha_validate_weight', 25, 2 );
 
function truemisha_validate_weight( $data, $errors ) {
 
	if ( WC()->cart->cart_contents_weight > 99 ) {
		$errors->add( 
			'validation', 
			'Вес ваших товаров слишком велик, он больше, чем допустимый 99 кг' 
		);
	}
 
}
  • Мы уже делали произвольную валидацию чекаута в этом уроке, поэтому если вам интересно, можете почитать подробнее.
  • Число 99 (строки 5 и 8) можете вынести в отдельную переменную или вовсе создать настройки в админке.
  • Также обратите внимание, что я захардкодил единицу измерения веса (кг), но лучше всего конечно её брать из настроек WooCommerce (Настройки > Товары), это можно сделать при помощи get_option( 'woocommerce_weight_unit' ).

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал