Как отключить опцию доставки Woocommerce после определенного времени?

Как указать два варианта доставки, "flat_rate:2" и "free_shipping:1", в данной строке кода:

$shipping_rate_id = 'flat_rate:2';

?
  • 22 ноября 2023 г. 21:30
Ответы на вопрос 1
Для отключения опции доставки Woocommerce после определенного времени вы можете использовать хук `woocommerce_package_rates`. Вот пример кода:

```php
add_filter('woocommerce_package_rates', 'disable_shipping_after_time', 10, 2);
function disable_shipping_after_time($rates, $package) {
    // Добавьте сюда свое время для отключения доставки (H:i формат)
    $disable_time = '18:00';

    $current_time = current_time('H:i');
    if (strtotime($current_time) > strtotime($disable_time)) {
        foreach ($rates as $rate_id => $rate) {
            // Отключаем все методы доставки
            if ($rate->method_id !== 'free_shipping') {
                unset($rates[$rate_id]);
            }
        }
    }
    return $rates;
}
```

Чтобы указать два варианта доставки, "flat_rate:2" и "free_shipping:1", в данной строке кода:

```php
$shipping_rate_id = 'flat_rate:2';
```

вы можете определить массив с этими вариантами и затем использовать функцию `in_array`, чтобы проверить, присутствует ли выбранная опция доставки в этом массиве. Вот пример:

```php
$shipping_rate_ids = array('flat_rate:2', 'free_shipping:1');
if (in_array($shipping_rate_id, $shipping_rate_ids)) {
    // Код, который должен выполняться, если выбранная опция доставки присутствует в массиве
}
```

Вы можете изменить код согласно вашим требованиям.
Похожие вопросы