WordPress имеет встроенный планировщик задач — WP-Cron. Когда нужно убрать из расписания все события, привязанные к определённому хуку, используют функцию wp_clear_scheduled_hook(). Она находит все совпадения по имени хука и удаляет их разом.
Функция появилась в WordPress 2.1.0 и находится в файле wp-includes/cron.php.
Синтаксис
wp_clear_scheduled_hook( $hook, $args = array() )
Параметры
$hook (строка) — имя хука, события которого нужно удалить из расписания.
$args (массив) — параметры хука. Важный момент: хук, запланированный с параметрами, считается отдельным событием по сравнению с хуком без параметров. Поэтому если событие создавалось с аргументами — нужно передать те же аргументы при удалении.
Пример использования
Удаляем все запланированные события для хука do_pings:
wp_clear_scheduled_hook( 'do_pings' );
Отличие от wp_unschedule_event()
Оба инструмента удаляют события из планировщика, но работают по-разному:
wp_clear_scheduled_hook() — перебирает весь массив запланированных событий и удаляет все, у которых совпадает имя хука. Удобно, когда нужно полностью очистить расписание для конкретного хука.
wp_unschedule_event() — удаляет одно конкретное событие по точному времени и имени хука. Внутри себя wp_clear_scheduled_hook() как раз вызывает эту функцию для каждого найденного события.