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

wp_unschedule_hook() WP 4.9.0

Удаляет из расписания крон абсолютно все крон задачи по указанному хуку. Тут не важно какие параметры были указаны при регистрации задачи.

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

Функция похожа на wp_unschedule_event(). Разница между ними в том, что эта функция удаляет все cron события разом, нужно лишь указать название хука, к которому были прикреплены события, а wp_unschedule_event() удаляет только одну cron задачу и к тому же нужно указать параметры передаваемые функции, если они были указаны при регистрации крон-задачи.

Функция почти идентична wp_clear_scheduled_hook(), только проще, тут нужно указать только называние хука и будут удалены все задания подчистую. Тогда как в wp_clear_scheduled_hook() нужно указать название хука и аргументы передаваемые функции, если они были указаны при регистрации крон-задачи и тогда будут удалены только соответствующие крон задачи.

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

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

Хуков нет.

Возвращает

Ничего (null).

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

wp_unschedule_hook( $hook );
$hook(строка) (обязательный)
Название события (хука) выполнение которого нужно убрать из расписания крона.

Примеры

#1 Отменим все крон события у хука

wp_unschedule_hook( 'my_hourly_event' );

#2 Отменим все крон события, при деактивации плагина

// при деактивации плагина, отменяем ранее созданную задачу
register_deactivation_hook( __FILE__, 'my_deactivation');
function my_deactivation() {
	wp_unschedule_hook( 'my_hourly_event' );
}

// добавим задачу при активации плагина
register_activation_hook( __FILE__, 'my_activation' );
function my_activation() {
	// удалим на всякий случай все такие же задачи cron, чтобы добавить новые с "чистого листа"
	// это может понадобиться, если до этого подключалась такая же задача неправильно (без проверки что она уже есть)
	wp_unschedule_hook( 'my_hourly_event' );

	// добавим новую cron задачу
	wp_schedule_event( time(), 'hourly', 'my_hourly_event');
}

Код wp_unschedule_hook: wp-includes/cron.php VER 5.0.1

<?php
function wp_unschedule_hook( $hook ) {
	$crons = _get_cron_array();

	foreach( $crons as $timestamp => $args ) {
		unset( $crons[ $timestamp ][ $hook ] );

		if ( empty( $crons[ $timestamp ] ) ) {
			unset( $crons[ $timestamp ] );
		}
	}

	_set_cron_array( $crons );
}

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

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

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