WordPress.org

Ready to get started?Download WordPress

Forums

wp_get_schedules not returning an array of schedules (1 post)

  1. caevan
    Member
    Posted 1 year ago #

    I recently had an issue with a plugin that runs a wordpress cron. Up until recently it appeared to work fine. When I investigated further the cron was no longer in the list of scheduled cron jobs. My investigation took me to the function wp_schedule_event in cron.php, I found that this function was not getting past the code

    if ( !isset( $schedules[$recurrence] ) )
    		return false;

    now the value of $recurrence was 'daily' which is one of the standard values. I also discover in my debug that the function wp_schedule_update_checks() in update.php was being repeatedly called and each of the calls to wp_schedule_event() was running into the same issue I was having with my plugin.
    Drilling further I went to the function wp_get_schedules() in cron.php
    In that function it sets up the variable $schedules with the default recurrences then has the following line

    return array_merge( apply_filters( 'cron_schedules', array() ), $schedules );

    The returned merged array is empty for some reason hence if statement above fails. If I change the above line to

    return($schedules);

    it works and even wp_schedule_update_checks() is successful. Though it means any custom schedules will not work.
    If someone can explain what is happening or if this is a bug I would be grateful.

Topic Closed

This topic has been closed to new replies.

About this Topic