From 4b55c3d722954eba8984fa9db136f9cf21aa7728 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Fri, 1 Aug 2014 20:56:11 +0000 Subject: [PATCH] Avoid an undefined index notice in wp_reschedule_event(). props paulschreiber. fixes #29077. git-svn-id: https://develop.svn.wordpress.org/trunk@29349 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/cron.php | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/wp-includes/cron.php b/src/wp-includes/cron.php index 6a64effab4..fc876147cc 100644 --- a/src/wp-includes/cron.php +++ b/src/wp-includes/cron.php @@ -100,28 +100,32 @@ function wp_schedule_event( $timestamp, $recurrence, $hook, $args = array()) { * @param array $args Optional. Arguments to pass to the hook's callback function. * @return bool|null False on failure. Null when event is rescheduled. */ -function wp_reschedule_event( $timestamp, $recurrence, $hook, $args = array()) { +function wp_reschedule_event( $timestamp, $recurrence, $hook, $args = array() ) { $crons = _get_cron_array(); $schedules = wp_get_schedules(); - $key = md5(serialize($args)); + $key = md5( serialize( $args ) ); $interval = 0; // First we try to get it from the schedule - if ( 0 == $interval ) - $interval = $schedules[$recurrence]['interval']; + 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']; + if ( 0 == $interval ) { + $interval = $crons[ $timestamp ][ $hook ][ $key ]['interval']; + } // Now we assume something is wrong and fail to schedule - if ( 0 == $interval ) + if ( 0 == $interval ) { return false; + } $now = time(); - if ( $timestamp >= $now ) + if ( $timestamp >= $now ) { $timestamp = $now + $interval; - else - $timestamp = $now + ($interval - (($now - $timestamp) % $interval)); + } else { + $timestamp = $now + ( $interval - ( ( $now - $timestamp ) % $interval ) ); + } wp_schedule_event( $timestamp, $recurrence, $hook, $args ); }