Недавно столкнулись с интересной задачей. В магазине на Вукомерс задекларирована бесплатная доставка при заказе на определенную сумму. Реализовано это стандартными методами WooCommerce: платный способ доставки и одноименный бесплатный способ доставки. Проблема заключалась в том, что на странице оформления заказа (Checkout) покупателю видны (и доступны для выбора) оба способа доставки. То есть есть необходимость отключить платный способ доставки.

Сразу отметим, что это не баг конкретного магазина, а нормальное поведение Вукомерса 🙂

Решается проблема добавлением следующего кода в файл functions.php активной темы сайта.

// Speedplus.com.ua ## Disable specific shipping methods based on subtotal
add_filter( 'woocommerce_package_rates', 'hide_shipping_method_based_on_subtotal', 10, 2 );
function hide_shipping_method_based_on_subtotal( $rates, $package )
{
	$order_total = WC()->cart->get_subtotal();
	if ( $order_total >= 120 ) { // 120 - subtotal for free shipping
    $shipping_rate_id_1 = 'flat_rate:2'; // flat_rate:2 - ID of shipping method to hide
		if ( array_key_exists( $shipping_rate_id_1, $rates ) ) {
			unset($rates[$shipping_rate_id_1]);
		}
	}
	return $rates;
}

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *