функция since 2.1.0

wp_schedule_event()

Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.

Сигнатура

wp_schedule_event( int $timestamp, string $recurrence, string $hook, array $args = array(), bool $wp_error = false ): bool|WP_Error

Описание

Планирует хук, который будет запускаться WordPress с указанным интервалом.
Действие сработает, когда кто-то посетит ваш сайт WordPress, если запланированное время уже прошло.
Допустимые значения периодичности: «hourly», «twicedaily», «daily» и «weekly».
Их можно расширить с помощью фильтра «cron_schedules» в wp_get_schedules() .
Используйте wp_next_scheduled() для предотвращения дублирования событий.
Используйте wp_schedule_single_event() для планирования неповторяющегося события.

Оригинал (английский)

Schedules a hook which will be triggered by WordPress at the specified interval.
The action will trigger when someone visits your WordPress site if the scheduled time has passed.

Valid values for the recurrence are ‘hourly’, ‘twicedaily’, ‘daily’, and ‘weekly’.
These can be extended using the ‘cron_schedules’ filter in wp_get_schedules() .

Use wp_next_scheduled() to prevent duplicate events.

Use wp_schedule_single_event() to schedule a non-recurring event.

Параметры

$timestamp int обязательный
Временная метка Unix (UTC), когда событие должно выполниться в следующий раз.
$recurrence string обязательный
Как часто событие должно затем повторяться. Допустимые значения см. в wp_get_schedules() .
$hook string обязательный
Хук-действие, выполняемый при запуске события.
$args array необязательный = array()
Массив аргументов для передачи в функцию обратного вызова хука. Каждое значение массива передаётся функции обратного вызова как отдельный параметр. Ключи массива игнорируются. Эти аргументы используются для однозначной идентификации запланированного события и должны совпадать с теми, что использовались при первоначальном планировании события. Если аргументы не совпадают в точности, WordPress будет считать событие другим, что может привести к непреднамеренному планированию дублирующихся cron-событий, чрезмерному разрастанию опции 'cron' и проблемам с производительностью базы данных.
$wp_error bool необязательный = false
Возвращать ли WP_Error в случае сбоя.

Возвращаемое значение

bool|WP_Error

WP_Error

Исходный код

wp-includes/cron.php:252

function wp_schedule_event( $timestamp, $recurrence, $hook, $args = array(), $wp_error = false ) {
	// Make sure timestamp is a positive integer.
	if ( ! is_numeric( $timestamp ) || $timestamp <= 0 ) {
		if ( $wp_error ) {
			return new WP_Error(
				'invalid_timestamp',
				__( 'Event timestamp must be a valid Unix timestamp.' )
			);
		}

		return false;
	}

	$schedules = wp_get_schedules();

	if ( ! isset( $schedules[ $recurrence ] ) ) {
		if ( $wp_error ) {
			return new WP_Error(
				'invalid_schedule',
				__( 'Event schedule does not exist.' )
			);
		}

		return false;
	}

	$event = (object) array(
		'hook'      => $hook,
		'timestamp' => $timestamp,
		'schedule'  => $recurrence,
		'args'      => $args,
		'interval'  => $schedules[ $recurrence ]['interval'],
	);

	/** This filter is documented in wp-includes/cron.php */
	$pre = apply_filters( 'pre_schedule_event', null, $event, $wp_error );

	if ( null !== $pre ) {
		if ( $wp_error && false === $pre ) {
			return new WP_Error(
				'pre_schedule_event_false',
				__( 'A plugin prevented the event from being scheduled.' )
			);
		}

		if ( ! $wp_error && is_wp_error( $pre ) ) {
			return false;
		}

		return $pre;
	}

	/** This filter is documented in wp-includes/cron.php */
	$event = apply_filters( 'schedule_event', $event );

	// A plugin disallowed this event.
	if ( ! $event ) {
		if ( $wp_error ) {
			return new WP_Error(
				'schedule_event_false',
				__( 'A plugin disallowed this event.' )
			);
		}

		return false;
	}

	$key = md5( serialize( $event->args ) );

	$crons = _get_cron_array();

	$crons[ $event->timestamp ][ $event->hook ][ $key ] = array(
		'schedule' => $event->schedule,
		'args'     => $event->args,
		'interval' => $event->interval,
	);
	uksort( $crons, 'strnatcasecmp' );

	return _set_cron_array( $crons, $wp_error );
}

История изменений

ВерсияОписание
5.7.0 The $wp_error parameter was added.
5.1.0 Return value modified to boolean indicating success or failure, 'pre_schedule_event' filter added to short-circuit the function.
2.1.0 Introduced.

Что будем искать? Например,Продвижение

Этот сайт использует куки-файлы. Оставаясь на сайте, Вы соглашаетесь на их использование. Для получения дополнительной информации, пожалуйста, ознакомьтесь с политикой в отношении персональных данных.