wp_unschedule_event

Удаляет из расписания запланированное ранее крон задание (событие).

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

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

Хуков нет.

Возвращает

Ничего не возвращает.

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

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

Примеры

#1. Отменим следующее событие, прикрепленное к хуку

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

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

Код из


wp-includes/cron.php

WP 4.7.2

<?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 );
}