Следующий код активирует различные способы доставки в зависимости от установленного порогового значения даты.
Вам необходимо определить в функции свои настройки для:
- часовой пояс магазина
-2 идентификатора тарифа для способов доставки (например, формат flat_rate: 12)
- Порог даты
Код:
add_filter( 'woocommerce_package_rates', 'free_shipping_disable_flat_rate', 100, 2 );
function free_shipping_disable_flat_rate( $rates, $package ) {
## ----- YOUR SETTINGS HERE BELOW ----- ##
date_default_timezone_set('Europe/London'); // <== Set the time zone (http://php.net/manual/en/timezones.php)
$shippping_rates = ['flat_rate:12', 'flat_rate:14']; // <== Set your 2 shipping methods rate IDs
$defined_date = "2019-03-05"; // <== Set your date threshold
## ------------------------------------- ##
$now_timestamp = strtotime("now"); // Current timestamp in seconds
$date_timestamp = strtotime($defined_date); // Targeted timestamp threshold
// 1. BEFORE the specified date (with 1st shipping method rate ID)
if ( array_key_exists( $shippping_rates[0], $rates ) && $now_timestamp > $date_timestamp ) {
unset($rates[$shippping_rates[0]]); // Remove first shipping method
}
// 2. AFTER the specified date included (with 2nd shipping method rate ID)
elseif ( array_key_exists( $shippping_rates[1], $rates ) && $now_timestamp <= $date_timestamp ) {
unset($rates[$shippping_rates[1]]); // Remove Second shipping method
}
return $rates;
}
Код продолжает работать.PHP-файл вашей активной дочерней темы (или активной темы).Протестировано и работает.
Чтобы это работало, вам необходимо обновить кэшированные данные доставки:
1) Сначала вставьте и сохраните этот код в своей функции.php файл
2) В настройках Доставки войдите в Зону Доставки, затем отключите Способ Доставки и «Сохранить», а затем снова включите его и «Сохранить». Готово. .
Чтобы получить правильный идентификатор тарифа для методов доставки, проверьте код их переключателей с помощью инструментов браузера (на корзине или на странице оформления заказа) и используйте value
атрибутные данные, такие как:
<input type="radio" name="shipping_method[0]" data-index="0" id="shipping_method_0_flat_rate12"
value="flat_rate:12" class="shipping_method" checked="checked">
… так вот оно flat_rate:12
в value="flat_rate:12"