Для отключения опции доставки 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)) {
// Код, который должен выполняться, если выбранная опция доставки присутствует в массиве
}
```
Вы можете изменить код согласно вашим требованиям.