if ( ! $this->should_update( $type, $item, $context ) )
return false;
+ $upgrader_item = $item;
switch ( $type ) {
case 'core':
$skin->feedback( __( 'Updating to WordPress %s' ), $item->version );
$item_name = sprintf( __( 'WordPress %s' ), $item->version );
break;
case 'theme':
- $theme = wp_get_theme( $item );
+ $upgrader_item = $item->theme;
+ $theme = wp_get_theme( $upgrader_item );
$item_name = $theme->Get( 'Name' );
$skin->feedback( __( 'Updating theme: %s' ), $item_name );
break;
case 'plugin':
- $plugin_data = get_plugin_data( $context . '/' . $item );
+ $upgrader_item = $item->plugin;
+ $plugin_data = get_plugin_data( $context . '/' . $upgrader_item );
$item_name = $plugin_data['Name'];
$skin->feedback( __( 'Updating plugin: %s' ), $item_name );
break;
}
// Boom, This sites about to get a whole new splash of paint!
- $upgrade_result = $upgrader->upgrade( $item, array(
+ $upgrade_result = $upgrader->upgrade( $upgrader_item, array(
'clear_update_cache' => false,
'pre_check_md5' => false, /* always use partial builds if possible for core updates */
'attempt_rollback' => true, /* only available for core updates */
wp_update_plugins(); // Check for Plugin updates
$plugin_updates = get_site_transient( 'update_plugins' );
if ( $plugin_updates && !empty( $plugin_updates->response ) ) {
- foreach ( array_keys( $plugin_updates->response ) as $plugin ) {
+ foreach ( $plugin_updates->response as $plugin ) {
$this->update( 'plugin', $plugin );
}
// Force refresh of plugin update information
wp_update_themes(); // Check for Theme updates
$theme_updates = get_site_transient( 'update_themes' );
if ( $theme_updates && !empty( $theme_updates->response ) ) {
- foreach ( array_keys( $theme_updates->response ) as $theme ) {
- $this->update( 'theme', $theme );
+ foreach ( $theme_updates->response as $theme ) {
+ $this->update( 'theme', (object) $theme );
}
// Force refresh of theme update information
wp_clean_themes_cache();
// Clean up, and check for any pending translations
// (Core_Upgrader checks for core updates)
- wp_update_themes(); // Check for Theme updates
- wp_update_plugins(); // Check for Plugin updates
+ $theme_stats = array();
+ if ( isset( $this->update_results['theme'] ) ) {
+ foreach ( $this->update_results['theme'] as $upgrade ) {
+ $theme_stats[ $upgrade->item->theme ] = ( true === $upgrade->result );
+ }
+ }
+ wp_update_themes( $theme_stats ); // Check for Theme updates
+
+ $plugin_stats = array();
+ if ( isset( $this->update_results['plugin'] ) ) {
+ foreach ( $this->update_results['plugin'] as $upgrade ) {
+ $plugin_stats[ $upgrade->item->plugin ] = ( true === $upgrade->result );
+ }
+ }
+ wp_update_plugins( $plugin_stats ); // Check for Plugin updates
// Finally, Process any new translations
$language_updates = wp_get_translation_updates();