Make WordPress Core

Ticket #51928: 51928.3.diff

File 51928.3.diff, 2.2 KB (added by pbiron, 4 years ago)
  • src/wp-admin/includes/class-wp-upgrader.php

    From 1627abae6154b135ade5a931184aa17010bad80d Mon Sep 17 00:00:00 2001
    From: Paul Biron <paul@sparrowhawkcomputing.com>
    Date: Thu, 3 Dec 2020 15:29:52 -0700
    Subject: [PATCH] Send stats to the API when plugin or theme update fails.
    
    ---
     src/wp-admin/includes/class-wp-upgrader.php | 32 +++++++++++++++++++++
     1 file changed, 32 insertions(+)
    
    diff --git a/src/wp-admin/includes/class-wp-upgrader.php b/src/wp-admin/includes/class-wp-upgrader.php
    index 5faac56213..4563afc63d 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 { 
    798799                        )
    799800                );
    800801
     802                // If WP_Error send data to WordPress.org.
     803                if ( is_wp_error( $result ) ) {
     804                        global $wp_version, $wp_filesystem;
     805                        $stats = array(
     806                                'update_type'      => null,
     807                                'name'             => null,
     808                                'update_version'   => null,
     809                                'success'          => false,
     810                                'fs_method'        => $wp_filesystem->method,
     811                                'fs_method_forced' => defined( 'FS_METHOD' ) || has_filter( 'filesystem_method' ),
     812                                'fs_method_direct' => ! empty( $GLOBALS['_wp_filesystem_direct_method'] ) ? $GLOB['_wp_filesystem_direct_method'] : '',
     813                                'time_taken'       => time() - $start_time,
     814                                'wp_version'       => $wp_version,
     815                                'wp_error'         => $result,
     816                        );
     817                        if ( $this instanceof Plugin_Upgrader ) {
     818                                $stats['update_type']    = 'plugin';
     819                                $stats['name']           = $this->skin->plugin_info['Name'];
     820                                $stats['update_version'] = $this->skin->plugin_info['Version'];
     821
     822                                wp_update_plugins( $stats );
     823                        }
     824                        if ( $this instanceof Theme_Upgrader ) {
     825                                $stats['update_type']    = 'theme';
     826                                $stats['name']           = $this->skin->theme_info->get('Name');
     827                                $stats['update_version'] = $this->skin->theme_info->get('Version');
     828
     829                                wp_update_themes( $stats );
     830                        }
     831                }
     832
    801833                $this->skin->set_result( $result );
    802834                if ( is_wp_error( $result ) ) {
    803835                        $this->skin->error( $result );