Расчет стоимости доставки по весу без плагинов

В этом уроке мы создадим с вами метод доставки «Единая ставка» и настроим его так, чтобы его цена рассчитывалась в зависимости от веса товаров в корзине.

Также у меня на сайте есть видеокурс по WooCommerce, в котором мы создаём тему для интернет-магазина с нуля, на основе готового HTML, вот ссылка.

Шаг 1. Создание метода доставки в админке «Единая ставка»

Стоимость доставки по весу товаров в корзине
Переходим в WooCommerce > Настройки, вкладка Доставка, выбираем там нужную зону и создаём метод доставки «Единая ставка», с любой стоимостью.

Шаг 2. Настраиваем формулу расчёта в сниппете кода

Код как обычно вставляем либо в functions.php текущей темы (предпочтительнее дочерней), либо в свой плагин.

add_filter( 'woocommerce_package_rates', 'truemisha_shipping_by_weight', 25, 2 );
 
function truemisha_shipping_by_weight( $rates, $package ) {
 
	// вес товаров в корзине
	$cart_weight = WC()->cart->cart_contents_weight;
 
	// ID метода доставки
	$method_id = 'flat_rate:84';
 
	if ( isset( $rates[ $method_id ] ) ) {
		// тут должна быть ваша собственная формула, моя это:
		// стоимость доставки = 5 * вес товаров в корзине
		$rates[ $method_id ]->cost = 5 * round ( $cart_weight );
	}
 
	return $rates;
 
}
  • Думаю не нужно лишний раз упоминать, что в настройках товаров у вас должен быть указан вес.
  • Откуда взять значение $method_id ? Понятно, что это ID конкретно вашего метода доставки, который мы создали в первом шаге. О том, как его узнать, я уже рассказывал тут.
  • Также вы можете применить это ко всем существующим методам доставки внутри этого же кода, при помощи цикла foreach( $rates as ....

Миша

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

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

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

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

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