Make WordPress Core

Ticket #51928: 51928.8.diff

File 51928.8.diff, 10.5 KB (added by afragen, 14 months ago)

adding so much data that Dion will either jump for joy or cry

  • wp-admin/includes/class-plugin-upgrader.php

    diff --git a/wp-admin/includes/class-plugin-upgrader.php b/wp-admin/includes/class-plugin-upgrader.php
    index b171f9228b..0e1c185daa 100644
    a b class Plugin_Upgrader extends WP_Upgrader { 
    116116         * @return bool|WP_Error True if the installation was successful, false or a WP_Error otherwise.
    117117         */
    118118        public function install( $package, $args = array() ) {
     119                $start_time  = time();
    119120                $defaults    = array(
    120121                        'clear_update_cache' => true,
    121122                        'overwrite_package'  => false, // Do not overwrite files.
    class Plugin_Upgrader extends WP_Upgrader { 
    132133                        add_action( 'upgrader_process_complete', 'wp_clean_plugins_cache', 9, 0 );
    133134                }
    134135
    135                 $this->run(
     136                $result = $this->run(
    136137                        array(
    137138                                'package'           => $package,
    138139                                'destination'       => WP_PLUGIN_DIR,
    class Plugin_Upgrader extends WP_Upgrader { 
    148149                remove_action( 'upgrader_process_complete', 'wp_clean_plugins_cache', 9 );
    149150                remove_filter( 'upgrader_source_selection', array( $this, 'check_package' ) );
    150151
     152                if ( is_wp_error( $result ) ) {
     153                        $this->send_error_data( $result, $start_time, 'plugin_install' );
     154                }
     155
    151156                if ( ! $this->result || is_wp_error( $this->result ) ) {
    152157                        return $this->result;
    153158                }
    class Plugin_Upgrader extends WP_Upgrader { 
    188193         * @return bool|WP_Error True if the upgrade was successful, false or a WP_Error object otherwise.
    189194         */
    190195        public function upgrade( $plugin, $args = array() ) {
     196                $start_time  = time();
    191197                $defaults    = array(
    192198                        'clear_update_cache' => true,
    193199                );
    class Plugin_Upgrader extends WP_Upgrader { 
    219225                        add_action( 'upgrader_process_complete', 'wp_clean_plugins_cache', 9, 0 );
    220226                }
    221227
    222                 $this->run(
     228                $result = $this->run(
    223229                        array(
    224230                                'package'           => $r->package,
    225231                                'destination'       => WP_PLUGIN_DIR,
    class Plugin_Upgrader extends WP_Upgrader { 
    240246                remove_filter( 'upgrader_clear_destination', array( $this, 'delete_old_plugin' ) );
    241247                remove_filter( 'upgrader_post_install', array( $this, 'active_after' ) );
    242248
     249                if ( is_wp_error( $result ) ) {
     250                        $this->send_error_data( $result, $start_time, 'plugin_upgrade' );
     251                }
     252
    243253                if ( ! $this->result || is_wp_error( $this->result ) ) {
    244254                        return $this->result;
    245255                }
    class Plugin_Upgrader extends WP_Upgrader { 
    274284         * @return array|false An array of results indexed by plugin file, or false if unable to connect to the filesystem.
    275285         */
    276286        public function bulk_upgrade( $plugins, $args = array() ) {
     287                $start_time  = time();
    277288                $defaults    = array(
    278289                        'clear_update_cache' => true,
    279290                );
    class Plugin_Upgrader extends WP_Upgrader { 
    349360
    350361                        $results[ $plugin ] = $this->result;
    351362
     363                        if ( is_wp_error( $result ) ) {
     364                                $this->send_error_data( $result, $start_time, 'plugin_bulk_upgrade' );
     365                        }
     366
    352367                        // Prevent credentials auth screen from displaying multiple times.
    353368                        if ( false === $result ) {
    354369                                break;
  • wp-admin/includes/class-theme-upgrader.php

    diff --git a/wp-admin/includes/class-theme-upgrader.php b/wp-admin/includes/class-theme-upgrader.php
    index 229a8115bd..f1ff035f06 100644
    a b class Theme_Upgrader extends WP_Upgrader { 
    122122         * @return bool
    123123         */
    124124        public function check_parent_theme_filter( $install_result, $hook_extra, $child_result ) {
     125                $start_time = time();
     126
    125127                // Check to see if we need to install a parent theme.
    126128                $theme_info = $this->theme_info();
    127129
    class Theme_Upgrader extends WP_Upgrader { 
    180182                );
    181183
    182184                if ( is_wp_error( $parent_result ) ) {
     185                        $this->send_error_data( $parent_result, $start_time, 'parent_theme' );
    183186                        add_filter( 'install_theme_complete_actions', array( $this, 'hide_activate_preview_actions' ) );
    184187                }
    185188
    class Theme_Upgrader extends WP_Upgrader { 
    228231         * @return bool|WP_Error True if the installation was successful, false or a WP_Error object otherwise.
    229232         */
    230233        public function install( $package, $args = array() ) {
     234                $start_time  = time();
    231235                $defaults    = array(
    232236                        'clear_update_cache' => true,
    233237                        'overwrite_package'  => false, // Do not overwrite files.
    class Theme_Upgrader extends WP_Upgrader { 
    245249                        add_action( 'upgrader_process_complete', 'wp_clean_themes_cache', 9, 0 );
    246250                }
    247251
    248                 $this->run(
     252                $result = $this->run(
    249253                        array(
    250254                                'package'           => $package,
    251255                                'destination'       => get_theme_root(),
    class Theme_Upgrader extends WP_Upgrader { 
    262266                remove_filter( 'upgrader_source_selection', array( $this, 'check_package' ) );
    263267                remove_filter( 'upgrader_post_install', array( $this, 'check_parent_theme_filter' ) );
    264268
     269                if ( is_wp_error( $result ) ) {
     270                        $this->send_error_data( $result, $start_time, 'theme_install' );
     271                }
     272
    265273                if ( ! $this->result || is_wp_error( $this->result ) ) {
    266274                        return $this->result;
    267275                }
    class Theme_Upgrader extends WP_Upgrader { 
    302310         * @return bool|WP_Error True if the upgrade was successful, false or a WP_Error object otherwise.
    303311         */
    304312        public function upgrade( $theme, $args = array() ) {
     313                $start_time  = time();
    305314                $defaults    = array(
    306315                        'clear_update_cache' => true,
    307316                );
    class Theme_Upgrader extends WP_Upgrader { 
    330339                        add_action( 'upgrader_process_complete', 'wp_clean_themes_cache', 9, 0 );
    331340                }
    332341
    333                 $this->run(
     342                $result = $this->run(
    334343                        array(
    335344                                'package'           => $r['package'],
    336345                                'destination'       => get_theme_root( $theme ),
    class Theme_Upgrader extends WP_Upgrader { 
    349358                remove_filter( 'upgrader_post_install', array( $this, 'current_after' ) );
    350359                remove_filter( 'upgrader_clear_destination', array( $this, 'delete_old_theme' ) );
    351360
     361                if ( is_wp_error( $result ) ) {
     362                        $this->send_error_data( $result, $start_time, 'theme_upgrade' );
     363                }
     364
    352365                if ( ! $this->result || is_wp_error( $this->result ) ) {
    353366                        return $this->result;
    354367                }
    class Theme_Upgrader extends WP_Upgrader { 
    383396         * @return array[]|false An array of results, or false if unable to connect to the filesystem.
    384397         */
    385398        public function bulk_upgrade( $themes, $args = array() ) {
     399                $start_time  = time();
    386400                $defaults    = array(
    387401                        'clear_update_cache' => true,
    388402                );
    class Theme_Upgrader extends WP_Upgrader { 
    459473
    460474                        $results[ $theme ] = $this->result;
    461475
     476                        if ( is_wp_error( $result ) ) {
     477                                $this->send_error_data( $result, $start_time, 'theme_bulk_upgrade' );
     478                        }
     479
    462480                        // Prevent credentials auth screen from displaying multiple times.
    463481                        if ( false === $result ) {
    464482                                break;
  • wp-admin/includes/class-wp-upgrader.php

    diff --git a/wp-admin/includes/class-wp-upgrader.php b/wp-admin/includes/class-wp-upgrader.php
    index 5faac56213..5e85f18006 100644
    a b class WP_Upgrader { 
    666666         *                              or false if unable to connect to the filesystem.
    667667         */
    668668        public function run( $options ) {
     669                $start_time = time();
    669670
    670671                $defaults = array(
    671672                        'package'                     => '', // Please always pass this.
    class WP_Upgrader { 
    728729                $this->skin->before();
    729730
    730731                if ( is_wp_error( $res ) ) {
     732                        $this->send_error_data( $res, $start_time, 'fs_connect' );
    731733                        $this->skin->error( $res );
    732734                        $this->skin->after();
    733735                        if ( ! $options['is_multi'] ) {
    class WP_Upgrader { 
    765767                }
    766768
    767769                if ( is_wp_error( $download ) ) {
     770                        $this->send_error_data( $download, $start_time, 'download_package' );
    768771                        $this->skin->error( $download );
    769772                        $this->skin->after();
    770773                        if ( ! $options['is_multi'] ) {
    class WP_Upgrader { 
    778781                // Unzips the file into a temporary directory.
    779782                $working_dir = $this->unpack_package( $download, $delete_package );
    780783                if ( is_wp_error( $working_dir ) ) {
     784                        $this->send_error_data( $working_dir, $start_time, 'unpack_package' );
    781785                        $this->skin->error( $working_dir );
    782786                        $this->skin->after();
    783787                        if ( ! $options['is_multi'] ) {
    class WP_Upgrader { 
    800804
    801805                $this->skin->set_result( $result );
    802806                if ( is_wp_error( $result ) ) {
     807                        $this->send_error_data( $result, $start_time, 'install_package' );
    803808                        $this->skin->error( $result );
    804809
    805810                        if ( ! method_exists( $this->skin, 'hide_process_failed' ) || ! $this->skin->hide_process_failed( $result ) ) {
    class WP_Upgrader { 
    937942                return delete_option( $lock_name . '.lock' );
    938943        }
    939944
     945        /**
     946         * Send upgrade WP_Error data to WordPress.org.
     947         *
     948         * @since 5.7.0
     949         *
     950         * @global string             $wp_version    The WordPress version string.
     951         * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
     952         * @param  WP_Error           $result        WP_Error data from failed upgrade process.
     953         * @param  int                $start_time    Time that run() started.
     954         * @param  string             $method        Name of method sending data.
     955         *
     956         * @return void
     957         */
     958        public function send_error_data( $result, $start_time, $method = null ) {
     959                global $wp_version, $wp_filesystem;
     960
     961                if ( ! is_wp_error( $result ) ) {
     962                        return;
     963                }
     964                $stats = array(
     965                        'process'          => $method,
     966                        'update_type'      => null,
     967                        'name'             => null,
     968                        'update_version'   => null,
     969                        'success'          => false,
     970                        'fs_method'        => $wp_filesystem->method,
     971                        'fs_method_forced' => defined( 'FS_METHOD' ) || has_filter( 'filesystem_method' ),
     972                        'fs_method_direct' => ! empty( $GLOBALS['_wp_filesystem_direct_method'] ) ? $GLOBALS['_wp_filesystem_direct_method'] : '',
     973                        'time_taken'       => time() - $start_time,
     974                        'wp_version'       => $wp_version,
     975                        'error_code'       => $result->get_error_code(),
     976                        'error_message'    => $result->get_error_message(),
     977                        'error_data'       => $result->get_error_data(),
     978                );
     979                if ( $this instanceof Plugin_Upgrader ) {
     980                        if ( isset( $this->skin->plugin_info ) ) {
     981                                $stats['update_type']    = 'manual_plugin_update';
     982                                $stats['name']           = $this->skin->plugin_info['Name'];
     983                                $stats['update_version'] = $this->skin->plugin_info['Version'];
     984                        } else {
     985                                $stats['update_type'] = 'automatic_plugin_update';
     986                        }
     987                        wp_update_plugins( $stats );
     988                }
     989                if ( $this instanceof Theme_Upgrader ) {
     990                        if ( isset( $this->skin->theme_info )) {
     991                                $stats['update_type']    = 'manual_theme_update';
     992                                $stats['name']           = $this->skin->theme_info->get('Name');
     993                                $stats['update_version'] = $this->skin->theme_info->get('Version');
     994                        } else {
     995                                $stats['update_type'] = 'automatic_theme_update';
     996                        }
     997                        wp_update_themes( $stats );
     998                }
     999        }
    9401000}
    9411001
    9421002/** Plugin_Upgrader class */