From 0d3544764702a4727f1d666d0c43b143fac69c9e Mon Sep 17 00:00:00 2001 From: Aaron Jorbin Date: Tue, 24 Mar 2015 17:29:32 +0000 Subject: [PATCH] Fill `$plugins['upgrade']` with extra info for use in list table Shiny updates depends upon information from the update_plugins site transient in order to set data- attributes which are used by JavaScript. Since /wp-admin/plugins.php?plugin_status=upgrade uses `$plugin['upgrade']` rather than `$plugins['all']`, we need to fill that information in both places. Fixes #31738. git-svn-id: https://develop.svn.wordpress.org/trunk@31872 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/includes/class-wp-plugins-list-table.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/wp-admin/includes/class-wp-plugins-list-table.php b/src/wp-admin/includes/class-wp-plugins-list-table.php index 120ce5c48b..536e261873 100644 --- a/src/wp-admin/includes/class-wp-plugins-list-table.php +++ b/src/wp-admin/includes/class-wp-plugins-list-table.php @@ -125,8 +125,17 @@ class WP_Plugins_List_Table extends WP_List_Table { // Extra info if known. array_merge() ensures $plugin_data has precedence if keys collide. if ( isset( $plugin_info->response[ $plugin_file ] ) ) { $plugins['all'][ $plugin_file ] = $plugin_data = array_merge( (array) $plugin_info->response[ $plugin_file ], $plugin_data ); + // Make sure that $plugins['upgrade'] also recieves the extra info since it is used on ?plugin_status=upgrade + if (isset( $plugins['upgrade'][ $plugin_file ] ) ) { + $plugins['upgrade'][ $plugin_file ] = $plugin_data = array_merge( (array) $plugin_info->response[ $plugin_file ], $plugin_data ); + } + } elseif ( isset( $plugin_info->no_update[ $plugin_file ] ) ) { $plugins['all'][ $plugin_file ] = $plugin_data = array_merge( (array) $plugin_info->no_update[ $plugin_file ], $plugin_data ); + // Make sure that $plugins['upgrade'] also recieves the extra info since it is used on ?plugin_status=upgrade + if (isset( $plugins['upgrade'][ $plugin_file ] ) ) { + $plugins['upgrade'][ $plugin_file ] = $plugin_data = array_merge( (array) $plugin_info->no_update[ $plugin_file ], $plugin_data ); + } } // Filter into individual sections