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

В этом уроке мы сделаем невозможным оформление заказа в 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' ).

Миша

В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.