WordPress как на ладони
wordpress jino

wp_reschedule_event() WP 2.1.0

Создает новую крон задачу со сдвигом времени выполнения на указанный интервал.

Функция не удаляет текущую задачу если она есть, а просто создает еще одну и по сути является внутренней функцией WordPress, когда нужно создать следующее событие после того, как выполнено текущее.

Функция по сути является всего лишь оберткой для wp_schedule_event() в пересчетом $timestamp

Работает на основе: wp_schedule_event()

Хуков нет.

Возвращает

false/null. False если работа не дошла до функции wp_schedule_event(), если дошла, то всегда возвращает null

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

wp_reschedule_event( $timestamp, $recurrence, $hook, $args = array() );
$timestamp(число) (обязательный)
Начальная метка времени, с которой хук начнет работать.
$recurrence(строка) (обязательный)
Интервал повторения. Как часто должно повторяться действие.
$hook(строка) (обязательный)
Название хука, который нужно выполнять.
$args(массив)
Аргументы, которые нужно передать в выполняемый хук.
Default: array()

Подробное описание параметров и примеры смотрите в описании функции wp_schedule_event()

Код wp reschedule event: wp-includes/cron.php VER 4.9.1

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

	$crons = _get_cron_array();
	$schedules = wp_get_schedules();
	$key = md5( serialize( $args ) );
	$interval = 0;

	// First we try to get it from the schedule
	if ( isset( $schedules[ $recurrence ] ) ) {
		$interval = $schedules[ $recurrence ]['interval'];
	}
	// Now we try to get it from the saved interval in case the schedule disappears
	if ( 0 == $interval ) {
		$interval = $crons[ $timestamp ][ $hook ][ $key ]['interval'];
	}
	// Now we assume something is wrong and fail to schedule
	if ( 0 == $interval ) {
		return false;
	}

	$now = time();

	if ( $timestamp >= $now ) {
		$timestamp = $now + $interval;
	} else {
		$timestamp = $now + ( $interval - ( ( $now - $timestamp ) % $interval ) );
	}

	wp_schedule_event( $timestamp, $recurrence, $hook, $args );
}

Перевозки грузов

перевозки грузов

perm.dellin.ru

wp_reschedule_event Комментариев нет

    Здравствуйте, !

    Ваш комментарий
    Предпросмотр