/ Плагины / Изменение методов доставки в зависимости от условий

Изменение методов доставки в зависимости от условий

05.07.2020

362

При оформлении товара мы можем задавать условия для вывода методов доставки, а также менять их стоимость.

add_filter('woocommerce_package_rates','test_overwrite_fedex', 100, 2);
function test_overwrite_fedex($rates, $package) {
	
	if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return $rates;
	
	global $woocommerce;
	$cart_subtotal = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );

	foreach ($rates as $rate) {

		if ($rate->id == 'flat_rate:14') { 
			if ($cart_subtotal >= 1000) { 
				$rate->cost = 0; 
			}
		}
		
		if ($rate->id == 'flat_rate:15') { 
			if ($cart_subtotal >= 5000) { 
				$rate->cost = 0; 
			}
		}		
		
		/*if ($rate->id == 'free_shipping:11') { 
			unset($rates['free_shipping:11']);
		}*/
		
	}

	return $rates;
}

В данном примере при достижении сумм 1000 и 5000 методы доставки становятся бесплатными. Закомментирован код в котором отключается метод доставки.

Можно также создать условие в зависимости от состава корзины, т.е. содержится ли в ней определенный товар:

add_filter('woocommerce_package_rates', 'product_hide_shipping_method', 10, 2);
function product_hide_shipping_method( $rates, $package ){
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return $rates;

    // HERE set your Shipping Method ID to be removed
    $shipping_method_id = 'flat_rate:12';

    // HERE set your targeted product ID
    $product_id = 37;

    $found = false;

    // Loop through cart items and checking for the specific product ID
    foreach( $package['contents'] as $cart_item ) {
        if( $cart_item['data']->get_id() == $product_id )
            $found = true;
    }

    if( $found ){
        // Loop through available shipping methods
        foreach ( $rates as $rate_key => $rate ){
            // Remove the specific shipping method
            if( $shipping_method_id === $rate->id  )
                unset($rates[$rate->id]);
        }
    }
    return $rates;
}

Поделиться в соц. сетях:

  • Похожие записи
  • Комментарии
  • Вложения
Шорткод вывода товаров по метке

Шорткод вывода товаров по метке

Иногда требуется быстро вывести товары с определенной меткой. Данный шорткод проверял лично — работает. Шорткод выглядит так: Вывод товаров по метке без шорткода Без шорткода товары по метке (product_tag) выводятся Читать далее »

/
Настройка доставки

Настройка доставки

Настройка доставки в woocommerce 2.6 кардинальным образом изменилась. Стала более гибкой, но и более сложной в настройке. Разберемся в тонкостях настройки доставки. Зоны доставки Зоны доставки — это определенная территория Читать далее »

/
Вложить файл в заказ

Вложить файл в заказ

Если необходимо приложить к заказу реквизиты или любой другой файл, к заполняемым полям нужно добавить загрузчик файла. Easy Upload Files During Checkout (1000) Простой но рабочий функционал. В бесплатной версии Читать далее »

Добавить комментарий

Пока нет комментариев. Будь первым!

Изменение методов доставки в зависимости от условий
Импорт, экспорт товаров WC
Рекомендации для васИмпорт, экспорт товаров WCOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.