Make WordPress Core

Ticket #28571: 28571.patch

File 28571.patch, 2.2 KB (added by ocean90, 11 years ago)
  • src/wp-admin/includes/class-wp-upgrader.php

     
    11961196
    11971197        public static function async_upgrade( $upgrader = false ) {
    11981198                // Avoid recursion.
    1199                 if ( $upgrader && $upgrader instanceof Language_Pack_Upgrader )
     1199                if ( $upgrader && $upgrader instanceof Language_Pack_Upgrader ) {
    12001200                        return;
     1201                }
    12011202
    12021203                // Nothing to do?
    12031204                $language_updates = wp_get_translation_updates();
    1204                 if ( ! $language_updates )
     1205                if ( ! $language_updates ) {
    12051206                        return;
     1207                }
    12061208
     1209                foreach ( $language_updates as $key => $language_update ) {
     1210                        $type = $language_update->type;
     1211                        $update = ! empty( $language_update->autoupdate );
     1212
     1213                        /**
     1214                         * Filter whether to asynchronously update translation of core, a plugin, or a theme.
     1215                         *
     1216                         * The dynamic portion of the hook name, $type, refers to the type of update
     1217                         * being checked. Can be 'core', 'theme', or 'plugin'.
     1218                         *
     1219                         * @since 4.0.0
     1220                         *
     1221                         * @param bool   $update          Whether to update.
     1222                         * @param object $language_update The update offer.
     1223                         */
     1224                        $update = apply_filters( 'async_update_' . $type, $update, $language_update );
     1225
     1226                        if ( ! $update ) {
     1227                                unset( $language_updates[ $key ] );
     1228                        }
     1229                }
     1230
     1231                if ( empty( $language_updates ) ) {
     1232                        return;
     1233                }
     1234
    12071235                $skin = new Language_Pack_Upgrader_Skin( array(
    12081236                        'skip_header_footer' => true,
    12091237                ) );
    12101238
    12111239                $lp_upgrader = new Language_Pack_Upgrader( $skin );
    1212                 $lp_upgrader->upgrade();
     1240                $lp_upgrader->bulk_upgrade( $language_updates );
    12131241        }
    12141242
    12151243        public function upgrade_strings() {
     
    12641292                if ( 'upgrader_process_complete' == current_filter() )
    12651293                        $this->skin->feedback( 'starting_upgrade' );
    12661294
     1295                // Remove any existing pre-install filters, like from plugin upgrader, #WP29425.
     1296                remove_all_filters( 'upgrader_pre_install' );
     1297
    12671298                // Remove any existing package checks and then set the new one for translations, #WP29230.
    12681299                remove_all_filters( 'upgrader_source_selection' );
    12691300                add_filter( 'upgrader_source_selection', array( $this, 'check_package' ), 10, 2 );