WordPress как на ладони
WordCamp Saint Petersburg 2018 wordpress jino

wp_unschedule_hook() WP 4.9.0

Удаляет из расписания крон задач все события, связанные с указанным хуком.

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

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

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

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

Хуков нет.

Возвращает

Ничего (null).

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

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

Примеры

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

// при деактивации плагина, отменяем ранее созданную задачу
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 4.9.6

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

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

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