Make WordPress Core


Ignore:
Timestamp:
09/17/2013 02:25:17 AM (11 years ago)
Author:
dd32
Message:

WordPress Core Automatic Updates: Switch to a twicedaily cronjob to match the update check cron jobs, this removes the ability for update checks to continuously re-queue a upgrade job. See #22704

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/update.php

    r25442 r25466  
    121121    $updates->version_checked = $wp_version;
    122122    set_site_transient( 'update_core',  $updates);
    123 
    124     wp_auto_updates_maybe_queue( 'core' );
    125123}
    126124
     
    224222
    225223    set_site_transient( 'update_plugins', $new_option );
    226 
    227     wp_auto_updates_maybe_queue( 'plugins' );
    228224}
    229225
     
    336332
    337333    set_site_transient( 'update_themes', $new_update );
    338 
    339     wp_auto_updates_maybe_queue( 'themes' );
    340 }
    341 
    342 /**
    343  * Queues a cron entry if a potentially upgrade is detected.
     334}
     335
     336/**
     337 * Cron entry which runs the WordPress Automatic Updates
    344338 *
    345339 * @since 3.7.0
    346  *
    347  * @param string $type The type of update to check for, may be 'core', 'plugins', or, 'themes'.
    348  */
    349 function wp_auto_updates_maybe_queue( $type = 'core' ) {
    350     include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader.php';
    351     include_once ABSPATH . '/wp-admin/includes/update.php';
    352 
    353     if ( WP_Automatic_Upgrader::upgrader_disabled() )
    354         return;
    355 
    356     $updates_available = false;
    357     if ( 'core' == $type ) {
    358         $updates_available = (bool) find_core_auto_update();
    359     } elseif ( 'plugins' == $type ) {
    360         $plugin_updates = get_site_transient( 'update_plugins' );
    361         $updates_available = !empty( $plugin_updates->response );
    362     } elseif ( 'themes' == $type ) {
    363         $theme_updates = get_site_transient( 'update_themes' );
    364         $updates_available = empty( $theme_updates->response );
    365     }
    366 
    367     if ( $updates_available && ! wp_next_scheduled( 'wp_auto_updates_execute' ) ) {
    368         // If the transient update was triggered by a user pageview, update in an hours time, else, now.
    369         $when_to_update = get_current_user_id() ? time() + HOUR_IN_SECONDS : time();
    370         $when_to_update = apply_filters( 'auto_upgrade_when_to_upgrade', $when_to_update );
    371 
    372         wp_schedule_single_event( $when_to_update, 'wp_auto_updates_execute' );
    373     }
    374 
    375 }
    376 
    377 function wp_auto_updates_execute() {
     340 */
     341function wp_auto_updates_maybe_update() {
    378342    include_once ABSPATH . '/wp-admin/includes/admin.php';
    379343    include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader.php';
     
    488452    if ( !wp_next_scheduled('wp_update_themes') && !defined('WP_INSTALLING') )
    489453        wp_schedule_event(time(), 'twicedaily', 'wp_update_themes');
     454
     455    if ( !wp_next_scheduled( 'wp_auto_updates_maybe_update' ) && ! defined( 'WP_INSTALLING' ) )
     456        wp_schedule_event( time(), 'twicedaily', 'wp_auto_updates_maybe_update' );
     457
    490458}
    491459
     
    509477
    510478// Automatic Updates - Cron callback
    511 add_action( 'wp_auto_updates_execute', 'wp_auto_updates_execute' );
     479add_action( 'wp_auto_updates_maybe_update', 'wp_auto_updates_maybe_update' );
    512480
    513481add_action('init', 'wp_schedule_update_checks');
Note: See TracChangeset for help on using the changeset viewer.