WordPress как на ладони
Новые WordPress шаблоны Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

wp_unschedule_event() WP 2.1

Удаляет из расписания указанное крон событие (задание). Для удаления нужно указать все данные: метку времени, имя хука и параметры.

Чтобы отменить событие, вы должны знать точное время в которое оно запланировано и аргументы, которые должны быть переданы функции.

Подробнее об удалении крон задач: WP Cron (планировщик) в WordPress

Крон задание добавляется через wp_schedule_event().

Является основой для: wp_clear_scheduled_hook()

Хуков нет.

Возвращает

null/false. Возвращает false, если неправильно указан параметр $timestamp.

Использование

wp_unschedule_event( $timestamp, $hook, $args );
$timestamp(строка) (обязательный)
Метка времени в формате UNIX (321546564) в которое должно наступить событие, которые мы хотим удалить.
По умолчанию: нет
$hook(строка) (обязательный)
Название хука к которому "цепляется" функция выполняющее действие указанное в $timestamp время.
По умолчанию: нет
$args(массив)
Массив аргументов, которые должны быть переданные функции.
По умолчанию: array()

Примеры

#1. Отменим крон-задачу

Предполагается, что функции прикрепленной к хуку никакие данные не передаются, поэтому $args указывать не обязательно.

wp_unschedule_event( 1424106123, 'my_schedule_hook' );

#2. Отменим крон-задачу с параметрами

Если при регистрации крон-задачи ей были указаны параметр, то для удаления такой задачи обязательно нужно указать эти параметры, иначе событие не удалиться.

wp_unschedule_event( 1424106123, 'my_schedule_hook', array('id'=>654) );

#3. Отменим крон-задачу: $timestamp получим автоматически.

Отменим крон задачу (событие) my_schedule_hook.

$timestamp = wp_next_scheduled( 'my_schedule_hook' );
wp_unschedule_event( $timestamp, 'my_schedule_hook' );

Код wp_unschedule_event: wp-includes/cron.php VER 4.9.8

<?php
function wp_unschedule_event( $timestamp, $hook, $args = array() ) {
	// Make sure timestamp is a positive integer
	if ( ! is_numeric( $timestamp ) || $timestamp <= 0 ) {
		return false;
	}

	$crons = _get_cron_array();
	$key = md5(serialize($args));
	unset( $crons[$timestamp][$hook][$key] );
	if ( empty($crons[$timestamp][$hook]) )
		unset( $crons[$timestamp][$hook] );
	if ( empty($crons[$timestamp]) )
		unset( $crons[$timestamp] );
	_set_cron_array( $crons );
}

Cвязанные функции

Из метки: cron (расписание schedule)

Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться