wp_get_scheduled_event()
Получает запланированную wp-cron задачу - данные указанного задания в виде объекта.
Работает на основе: _get_cron_array()
Основа для: wp_next_scheduled()
Хуки из функции
Возвращает
Объект|false
. Объект события. False, если события не существует.
Использование
wp_get_scheduled_event( $hook, $args, $timestamp );
- $hook(строка) (обязательный)
- Название задачи - WP хук который будет выполняться.
- $args(массив)
- Параметры, которые были указаны при регистрации события в фукнции wp_schedule_event(). Они нужны, чтобы точно понять, какую задачу вы хотите получить - для однозначной идентификации задачи.
По умолчанию: array() - $timestamp(int|null)
Временная метка события в Unix (UTC).
Если указать этот параметр, то будет получено задание с указанной временной меткой.
Если не указать, то будет получено следующее запланированное задание для указанного в $hook события.
По умолчанию: null
Примеры
#1 Регистрация событий с проверкой соответствия cron расписания.
При первом запуске код регистрирует cron задачу.
При повторном запуске проверяет соответствует ли интервал запуска зарегистрированного события, интервалу времени в исходном массиве. Если интервал запуска в массиве изменился, то код перерегистрирует событие с новым интервалом.
$events = [ 'my_event_name' => 'min' ]; foreach ( $events as $event_hook => $event_time ) { // получим cron задачу $cron_event = wp_get_scheduled_event( $event_hook ); // проверим что задача не запланирована или имеет другой интервал if ( ( false === $cron_event && '' !== $event_hook ) || ( is_object($cron_event) && $cron_event->schedule !== $event_time ) ) { // удалим на всякий случай все такие же задачи cron, чтобы добавить новые с "чистого листа" wp_clear_scheduled_hook( $event_hook ); // добавим новую cron задачу wp_schedule_event( time(), $event_time, $event_hook ); } }
Проверка работы скрипта выше, пример возвращаемого объекта
$event_hook = 'my_event_name'; $result = wp_get_scheduled_event( $event_hook ); print_r( $result );
Результат:
stdClass Object ( [hook] => my_event_name [timestamp] => 1636884508 [schedule] => min [args] => Array ( ) [interval] => 60 )
Список изменений
С версии 5.1.0 | Введена. |