В этом уроке мы сделаем невозможным оформление заказа в 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. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.
Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.
Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.