Описание функции wp_schedule_event()
Функция wp_schedule_event() используется для планирования повторяющихся событий в WordPress. Она позволяет разработчикам устанавливать задачи, которые будут выполняться через определенные интервалы времени. Это полезно для автоматизации различных процессов, таких как отправка уведомлений, очистка баз данных и т.д.
Функция добавляет событие в систему cron WordPress, что позволяет выполнять задачи в фоновом режиме без необходимости ручного вмешательства.
Параметры
$timestamp
Тип: int
Обязательный: Да
По умолчанию: Нет
Описание: Время (в секундах с начала эпохи Unix), когда должно быть запланировано первое выполнение события
Возможные значения:
$recurrence
Тип: string
Обязательный: Да
По умолчанию: Нет
Описание: Строка, определяющая интервал повторения события
Возможные значения:
0: hourly
1: twicedaily
2: daily
$hook
Тип: string
Обязательный: Да
По умолчанию: Нет
Описание: Идентификатор действия (hook), которое будет вызвано при выполнении события
Возможные значения:
$args
Тип: array
Обязательный: Нет
По умолчанию: array()
Описание: Массив аргументов, которые будут переданы в хук при выполнении события
$wp_error
Тип: bool
Обязательный: Нет
По умолчанию: false
Описание: Флаг, указывающий, нужно ли возвращать WP_Error в случае ошибки
Возможные значения:
0: 1
1:
Возвращаемое значение
Тип: mixed
Описание: Возвращает значение, указывающее на статус операции
Возможные значения:
• true — если событие успешно запланировано
• false — если событие не было запланировано, ошибка при добавлении
Примеры использования
Планирование события для выполнения каждый час
$timestamp = time() + 3600;
wp_schedule_event($timestamp, 'hourly', 'my_custom_event');
// Запланирует событие через 1 час
Добавление аргументов к событию
$args = array('foo' => 'bar');
wp_schedule_event(time(), 'daily', 'my_daily_event', $args);
// Запланирует событие на каждый день с аргументами
Проверка на успешное запланирование события
$result = wp_schedule_event(time(), 'daily', 'my_daily_event');
if ($result === false) {
// Обработка ошибки
}
Запланировать событие при активации плагина
function my_plugin_activate() {
if (!wp_next_scheduled('my_plugin_event')) {
wp_schedule_event(time(), 'hourly', 'my_plugin_event');
}
}
register_activation_hook(__FILE__, 'my_plugin_activate');
Определение функции, которая будет выполнена при срабатывании события
add_action('my_custom_event', 'my_custom_function');
function my_custom_function() {
// Код для выполнения при событии
}
Безопасность
Валидация входных данных: Параметры проходят валидацию внутри функции.
Санитизация: Функция не требует дополнительной очистки, так как использует типы данных.
Рекомендации: Убедитесь, что хук уникален, чтобы избежать конфликтов с другими плагинами
— Связанные функции
Удаляет запланированное событие.
Проверяет, запланировано ли событие.
— Примечания
– Ограничения
Не работает, если wp_cron не настроен или отключен.
– Частые проблемы
- Событие не выполняется из-за неправильных параметров.
- Конфликты с другими плагинами, использующими те же хуки.