Доступные способы доставки в зависимости от суммы заказа

На миша.блог когда-то давно прилетел комментарий с таким вопросом. Я сразу же добавил идею поста для этого как черновик, и в итоге вот сейчас публикую для вас 😁

На самом деле похожие уроки уже есть на блоге:

  • Тут мы включали и отключали методы оплаты в зависимости от суммы заказа.
  • А здесь мы скрывали способы доставки в случае доступности бесплатной доставки.

Также на сайте есть мой видеокурс по WooCommerce, который я всем рекомендую 🚀

Прежде, чем перейти к коду, я хочу напомнить, что доступность способа доставки от суммы заказа спокойно настраивается в админке WooCommerce, то есть возможно код вам и не понадобится. Но эта возможность существует только для бесплатных доставок.

настройка бесплатной доставки в WooCommerce

Ниже же сниппет кода, который позволят включить метод доставки flat_rate:2 при достижении определённой суммы заказа.

add_filter( 'woocommerce_package_rates', 'truemisha_remove_shipping_on_price', 25, 2 );
 
function truemisha_remove_shipping_on_price( $rates, $package ) {
 
	// если сумма всех товаров в корзине меньше 1000, отключаем способ доставки
	if ( WC()->cart->subtotal < 1000 ) {
	    unset( $rates[ 'flat_rate:2' ] );
	}
 
	return $rates;
 
}
  • Не путайте WC()->cart->subtotal, который считает сумму всех товаров в корзине и WC()->cart->total, в который уже входит стоимость выбранного способа доставки.
  • О том, как определить идентификатор способа доставки я уже рассказывал тут.

Миша

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

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

Комментарии — 2

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

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

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

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