Ticket #11542: 11542.diff

File 11542.diff, 2.9 KB (added by dd32, 2 years ago)
  • wp-admin/includes/class-wp-upgrader.php

     
    464464 
    465465                $this->maintenance_mode(true); 
    466466 
     467                $results = array(); 
     468 
    467469                $all = count($plugins); 
    468470                $i = 1; 
    469471                foreach ( $plugins as $plugin ) { 
  • wp-admin/plugins.php

     
    224224                case 'clear-recent-list': 
    225225                        update_option('recently_activated', array()); 
    226226                        break; 
     227                case 'upgrade-selected': 
     228                        if ( ! current_user_can('update_plugins') ) 
     229                                wp_die(__('You do not have sufficient permissions to update plugins for this blog.')); 
     230 
     231                        check_admin_referer('bulk-manage-plugins'); 
     232 
     233                        if ( isset($_GET['plugins']) ) { 
     234                                $plugins = explode(',', $_GET['plugins']); 
     235                        } elseif ( isset($_POST['checked']) ) { 
     236                                $plugins = (array) $_POST['checked']; 
     237 
     238                                // Filter out non-upgrade-needing plugins, Easy to check non-upgrade-needing plugins.. 
     239                                $current = get_transient( 'update_plugins' ); 
     240                                foreach ( $plugins as $key => $plugin ) 
     241                                        if ( !isset( $current->response[ $plugin ] ) ) 
     242                                                unset($plugins[$key]); 
     243 
     244                                unset($current); 
     245                        } else { 
     246                                $plugins = array(); 
     247                        } 
     248 
     249                        $title = __('Upgrade Plugins'); 
     250                        $nonce = 'bulk-manage-plugins'; 
     251                        $url = 'plugins.php?action=upgrade-selected&plugins=' . urlencode(join(',', $plugins)); 
     252                        $parent_file = 'plugins.php'; 
     253 
     254                        require_once('admin-header.php'); 
     255 
     256                        include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; 
     257 
     258                        $upgrader = new Plugin_Upgrader( new Plugin_Upgrader_Skin( compact('title', 'nonce', 'url') ) ); 
     259                        $upgrader->bulk_upgrade($plugins); 
     260 
     261                        require_once('admin-footer.php'); 
     262                        exit; 
     263                        break; 
    227264        } 
    228265} 
    229266 
     
    490527        <?php if ( current_user_can('delete_plugins') && ( 'active' != $context ) ) : ?> 
    491528                        <option value="delete-selected"><?php _e('Delete'); ?></option> 
    492529        <?php endif; ?> 
     530                        <option value="upgrade-selected"><?php _e('Upgrade') ?></option> 
    493531                </select> 
    494532                <input type="submit" name="doaction_active" value="<?php esc_attr_e('Apply'); ?>" class="button-secondary action" /> 
    495533        <?php if( 'recent' == $context ) : ?> 
  • wp-admin/update-core.php

     
    364364        $url = 'update-core.php?action=do-plugin-upgrade&amp;plugins=' . urlencode(join(',', $plugins)); 
    365365        $title = __('Upgrade Plugins'); 
    366366        $nonce = 'upgrade-core'; 
    367         $upgrader = new Plugin_Upgrader( new Plugin_Upgrader_Skin( compact('title', 'nonce', 'url', 'plugin') ) ); 
     367        $upgrader = new Plugin_Upgrader( new Plugin_Upgrader_Skin( compact('title', 'nonce', 'url') ) ); 
    368368        $upgrader->bulk_upgrade($plugins); 
    369369} 
    370370