WordPress.org

Make WordPress Core

Ticket #37531: 37531.6.diff

File 37531.6.diff, 8.7 KB (added by ocean90, 4 years ago)

refresh of .5

  • src/wp-admin/includes/ajax-actions.php

     
    33453345                wp_send_json_error( $status );
    33463346        }
    33473347
    3348         $upgrader = new Theme_Upgrader( new Automatic_Upgrader_Skin() );
     3348        $skin     = new WP_Ajax_Upgrader_Skin();
     3349        $upgrader = new Theme_Upgrader( $skin );
    33493350        $result   = $upgrader->install( $api->download_link );
    33503351
    33513352        if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
    3352                 $status['debug'] = $upgrader->skin->get_upgrade_messages();
     3353                $status['debug'] = $skin->get_upgrade_messages();
    33533354        }
    33543355
    33553356        if ( is_wp_error( $result ) ) {
     3357                $status['errorCode']    = $result->get_error_code();
    33563358                $status['errorMessage'] = $result->get_error_message();
    33573359                wp_send_json_error( $status );
     3360        } elseif ( is_wp_error( $skin->result ) ) {
     3361                $status['errorCode']    = $skin->result->get_error_code();
     3362                $status['errorMessage'] = $skin->result->get_error_message();
     3363                wp_send_json_error( $status );
     3364        } elseif ( $skin->get_errors()->get_error_code() ) {
     3365                $status['errorMessage'] = $skin->get_error_messages();
     3366                wp_send_json_error( $status );
    33583367        } elseif ( is_null( $result ) ) {
    33593368                global $wp_filesystem;
    33603369
     
    33633372
    33643373                // Pass through the error from WP_Filesystem if one was raised.
    33653374                if ( $wp_filesystem instanceof WP_Filesystem_Base && is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) {
     3375                        $status['errorCode']    = $wp_filesystem->errors->get_error_code();
    33663376                        $status['errorMessage'] = esc_html( $wp_filesystem->errors->get_error_message() );
    33673377                }
    33683378
     
    34373447                wp_update_themes();
    34383448        }
    34393449
    3440         $upgrader = new Theme_Upgrader( new Automatic_Upgrader_Skin() );
     3450        $skin     = new WP_Ajax_Upgrader_Skin();
     3451        $upgrader = new Theme_Upgrader( $skin );
    34413452        $result   = $upgrader->bulk_upgrade( array( $stylesheet ) );
    34423453
    34433454        if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
    3444                 $status['debug'] = $upgrader->skin->get_upgrade_messages();
     3455                $status['debug'] = $skin->get_upgrade_messages();
    34453456        }
    34463457
    3447         if ( is_array( $result ) && ! empty( $result[ $stylesheet ] ) ) {
     3458        if ( is_wp_error( $result ) ) {
     3459                $status['errorCode']    = $result->get_error_code();
     3460                $status['errorMessage'] = $result->get_error_message();
     3461                wp_send_json_error( $status );
     3462        } elseif ( is_wp_error( $skin->result ) ) {
     3463                $status['errorCode']    = $skin->result->get_error_code();
     3464                $status['errorMessage'] = $skin->result->get_error_message();
     3465                wp_send_json_error( $status );
     3466        } elseif ( $skin->get_errors()->get_error_code() ) {
     3467                $status['errorMessage'] = $skin->get_error_messages();
     3468                wp_send_json_error( $status );
     3469        } elseif ( is_array( $result ) && ! empty( $result[ $stylesheet ] ) ) {
    34483470
    34493471                // Theme is already at the latest version.
    34503472                if ( true === $result[ $stylesheet ] ) {
     
    34583480                }
    34593481
    34603482                wp_send_json_success( $status );
    3461         } elseif ( is_wp_error( $upgrader->skin->result ) ) {
    3462                 $status['errorCode']    = $upgrader->skin->result->get_error_code();
    3463                 $status['errorMessage'] = $upgrader->skin->result->get_error_message();
    3464                 wp_send_json_error( $status );
    34653483        } elseif ( false === $result ) {
    34663484                global $wp_filesystem;
    34673485
     
    34703488
    34713489                // Pass through the error from WP_Filesystem if one was raised.
    34723490                if ( $wp_filesystem instanceof WP_Filesystem_Base && is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) {
     3491                        $status['errorCode']    = $wp_filesystem->errors->get_error_code();
    34733492                        $status['errorMessage'] = esc_html( $wp_filesystem->errors->get_error_message() );
    34743493                }
    34753494
     
    35943613
    35953614        $status['pluginName'] = $api->name;
    35963615
    3597         $upgrader = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
     3616        $skin     = new WP_Ajax_Upgrader_Skin();
     3617        $upgrader = new Plugin_Upgrader( $skin );
    35983618        $result   = $upgrader->install( $api->download_link );
    35993619
    36003620        if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
    3601                 $status['debug'] = $upgrader->skin->get_upgrade_messages();
     3621                $status['debug'] = $skin->get_upgrade_messages();
    36023622        }
    36033623
    36043624        if ( is_wp_error( $result ) ) {
     3625                $status['errorCode']    = $result->get_error_code();
    36053626                $status['errorMessage'] = $result->get_error_message();
    36063627                wp_send_json_error( $status );
     3628        } elseif ( is_wp_error( $skin->result ) ) {
     3629                $status['errorCode']    = $skin->result->get_error_code();
     3630                $status['errorMessage'] = $skin->result->get_error_message();
     3631                wp_send_json_error( $status );
     3632        } elseif ( $skin->get_errors()->get_error_code() ) {
     3633                $status['errorMessage'] = $skin->get_error_messages();
     3634                wp_send_json_error( $status );
    36073635        } elseif ( is_null( $result ) ) {
    36083636                global $wp_filesystem;
    36093637
     
    36123640
    36133641                // Pass through the error from WP_Filesystem if one was raised.
    36143642                if ( $wp_filesystem instanceof WP_Filesystem_Base && is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) {
     3643                        $status['errorCode']    = $wp_filesystem->errors->get_error_code();
    36153644                        $status['errorMessage'] = esc_html( $wp_filesystem->errors->get_error_message() );
    36163645                }
    36173646
     
    36803709
    36813710        wp_update_plugins();
    36823711
    3683         $skin     = new Automatic_Upgrader_Skin();
     3712        $skin     = new WP_Ajax_Upgrader_Skin();
    36843713        $upgrader = new Plugin_Upgrader( $skin );
    36853714        $result   = $upgrader->bulk_upgrade( array( $plugin ) );
    36863715
    36873716        if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
    3688                 $status['debug'] = $upgrader->skin->get_upgrade_messages();
     3717                $status['debug'] = $skin->get_upgrade_messages();
    36893718        }
    36903719
    3691         if ( is_array( $result ) && empty( $result[ $plugin ] ) && is_wp_error( $skin->result ) ) {
    3692                 $result = $skin->result;
    3693         }
    3694 
    3695         if ( is_array( $result ) && ! empty( $result[ $plugin ] ) ) {
     3720        if ( is_wp_error( $result ) ) {
     3721                $status['errorCode']    = $result->get_error_code();
     3722                $status['errorMessage'] = $result->get_error_message();
     3723                wp_send_json_error( $status );
     3724        } elseif ( is_wp_error( $skin->result ) ) {
     3725                $status['errorCode']    = $skin->result->get_error_code();
     3726                $status['errorMessage'] = $skin->result->get_error_message();
     3727                wp_send_json_error( $status );
     3728        } elseif ( $skin->get_errors()->get_error_code() ) {
     3729                $status['errorMessage'] = $skin->get_error_messages();
     3730                wp_send_json_error( $status );
     3731        } elseif ( is_array( $result ) && ! empty( $result[ $plugin ] ) ) {
    36963732                $plugin_update_data = current( $result );
    36973733
    36983734                /*
     
    37163752                        $status['newVersion'] = sprintf( __( 'Version %s' ), $plugin_data['Version'] );
    37173753                }
    37183754                wp_send_json_success( $status );
    3719         } elseif ( is_wp_error( $result ) ) {
    3720                 $status['errorMessage'] = $result->get_error_message();
    3721                 wp_send_json_error( $status );
    37223755        } elseif ( false === $result ) {
    37233756                global $wp_filesystem;
    37243757
  • src/wp-admin/includes/class-wp-upgrader-skins.php

     
    3636
    3737/** Automatic_Upgrader_Skin class */
    3838require_once ABSPATH . 'wp-admin/includes/class-automatic-upgrader-skin.php';
     39
     40/** WP_Ajax_Upgrader_Skin class */
     41require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php';
  • src/wp-admin/includes/class-wp-upgrader.php

     
    3939/** Automatic_Upgrader_Skin class */
    4040require_once ABSPATH . 'wp-admin/includes/class-automatic-upgrader-skin.php';
    4141
     42/** WP_Ajax_Upgrader_Skin class */
     43require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php';
     44
    4245/**
    4346 * Core class used for upgrading/installing a local set of files via
    4447 * the Filesystem Abstraction classes from a Zip file.
  • src/wp-admin/js/updates.js

     
    244244         * @param {string=} response.errorCode Optional. Error code for an error that occurred.
    245245         */
    246246        wp.updates.ajaxAlways = function( response ) {
    247                 if ( ! response.errorCode && 'unable_to_connect_to_filesystem' !== response.errorCode ) {
     247                if ( ! response.errorCode || 'unable_to_connect_to_filesystem' !== response.errorCode ) {
    248248                        wp.updates.ajaxLocked = false;
    249249                        wp.updates.queueChecker();
    250250                }
     
    15241524         * @returns {boolean} Whether there is an error that needs to be handled or not.
    15251525         */
    15261526        wp.updates.maybeHandleCredentialError = function( response, action ) {
    1527                 if ( response.errorCode && 'unable_to_connect_to_filesystem' === response.errorCode ) {
     1527                if ( wp.updates.shouldRequestFilesystemCredentials && response.errorCode && 'unable_to_connect_to_filesystem' === response.errorCode ) {
    15281528                        wp.updates.credentialError( response, action );
    15291529                        return true;
    15301530                }