WordPress.org

Make WordPress Core

Ticket #22704: 22704.stats.diff

File 22704.stats.diff, 4.0 KB (added by dd32, 3 years ago)
  • src/wp-admin/includes/class-wp-upgrader.php

     
    12991299                $result = update_core( $working_dir, $wp_dir ); 
    13001300 
    13011301                // In the event of an error, rollback to the previous version 
    1302                 if ( is_wp_error( $result ) && $parsed_args['attempt_rollback'] && $current->packages->rollback ) { 
     1302                if ( is_wp_error( $result ) && $parsed_args['attempt_rollback'] && $current->packages->rollback && ! $parsed_args['do_rollback'] ) { 
    13031303                        apply_filters( 'update_feedback', $result ); 
    13041304                        apply_filters( 'update_feedback', $this->strings['start_rollback'] ); 
    13051305 
    1306                         $this->upgrade( $current, array_merge( $parsed_args, array( 'do_rollback' => true ) ) ); 
     1306                        $rollback_result = $this->upgrade( $current, array_merge( $parsed_args, array( 'do_rollback' => true ) ) ); 
    13071307 
    1308                         $result = new WP_Error( 'rollback_was_required', $this->strings['rollback_was_required'] ); 
     1308                        $result = new WP_Error( 'rollback_was_required', $this->strings['rollback_was_required'], array( 'rollback' => $rollback_result, 'update' => $result ) ); 
    13091309                } 
    13101310                do_action( 'upgrader_process_complete', $this, array( 'action' => 'update', 'type' => 'core' ), $result ); 
    13111311                return $result; 
     
    17171717 
    17181718                // Next, Process any core upgrade 
    17191719                wp_version_check(); // Check for Core updates 
     1720                $extra_update_args = array(); 
    17201721                $core_update = find_core_auto_update(); 
    17211722                if ( $core_update ) { 
    1722                         self::upgrade( 'core', $core_update ); 
     1723                        $start_time = time(); 
     1724                        $core_update_result = self::upgrade( 'core', $core_update ); 
    17231725                        delete_site_transient( 'update_core' ); 
     1726                        $extra_update_args['success'] = is_wp_error( $core_update_result ) ? $core_update_result->get_error_code() : true; 
     1727                        if ( is_wp_error( $core_update_result ) && 'rollback_was_required' == $core_update_result->get_error_code() ) { 
     1728                                $rollback_data = $core_update_result->get_error_data(); 
     1729                                $extra_update_args['update'] = is_wp_error( $rollback_data['update'] ) ? $rollback_data['update']->get_error_code() : $rollback_data['update']; 
     1730                                $extra_update_args['rollback'] = is_wp_error( $rollback_data['rollback'] ) ? $rollback_data['rollback']->get_error_code() : $rollback_data['rollback']; 
     1731                        } 
     1732                        $extra_update_args['fs_transport'] = $GLOBALS['wp_filesystem']->method; 
     1733                        $extra_update_args['time_taken'] = ( time() - $start_time ); 
    17241734                } 
    17251735 
    17261736                // Cleanup, and check for any pending translations 
    1727                 wp_version_check();  // check for Core updates 
     1737                wp_version_check( $extra_update_args );  // check for Core updates 
    17281738                wp_update_themes();  // Check for Theme updates 
    17291739                wp_update_plugins(); // Check for Plugin updates 
    17301740 
  • src/wp-includes/update.php

     
    1919 * 
    2020 * @return mixed Returns null if update is unsupported. Returns false if check is too soon. 
    2121 */ 
    22 function wp_version_check() { 
     22function wp_version_check( $extra_args = array() ) { 
    2323        if ( defined('WP_INSTALLING') ) 
    2424                return; 
    2525 
     
    3939        // Wait 60 seconds between multiple version check requests 
    4040        $timeout = 60; 
    4141        $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); 
    42         if ( $time_not_changed ) 
     42        if ( $time_not_changed && empty( $extra_args ) ) 
    4343                return false; 
    4444 
    4545        $locale = apply_filters( 'core_version_check_locale', get_locale() ); 
     
    7474                'local_package'     => isset( $wp_local_package ) ? $wp_local_package : '', 
    7575                'blogs'             => $num_blogs, 
    7676                'users'             => $user_count, 
    77                 'multisite_enabled' => $multisite_enabled 
     77                'multisite_enabled' => $multisite_enabled, 
    7878        ); 
     79        $query = array_merge( $query, $extra_args ); 
    7980 
    8081        $url = 'http://api.wordpress.org/core/version-check/1.7/?' . http_build_query( $query, null, '&' ); 
    8182        if ( wp_http_supports( array( 'ssl' ) ) )