mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
Administration: Handle the result of Plugin_Upgrader::bulk_upgrade() for a plugin that is already at the latest version in the same way it is handled for themes.
This corrects a fragile check of the result in `wp_ajax_update_plugin()` that depended on the internal array pointer, and brings some consistency with `wp_ajax_update_theme()`. Follow-up to [37714], [48401]. See #50448. git-svn-id: https://develop.svn.wordpress.org/trunk@48445 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
7cf1e60543
commit
9d30b02ed1
@ -4462,18 +4462,18 @@ function wp_ajax_update_plugin() {
|
||||
$status['errorMessage'] = $skin->get_error_messages();
|
||||
wp_send_json_error( $status );
|
||||
} elseif ( is_array( $result ) && ! empty( $result[ $plugin ] ) ) {
|
||||
$plugin_update_data = current( $result );
|
||||
|
||||
/*
|
||||
* If the `update_plugins` site transient is empty (e.g. when you update
|
||||
* two plugins in quick succession before the transient repopulates),
|
||||
* this may be the return.
|
||||
* Plugin is already at the latest version.
|
||||
*
|
||||
* This may also be the return value If the `update_plugins` site transient is empty,
|
||||
* e.g. when you update two plugins in quick succession before the transient repopulates.
|
||||
*
|
||||
* Preferably something can be done to ensure `update_plugins` isn't empty.
|
||||
* For now, surface some sort of error here.
|
||||
*/
|
||||
if ( true === $plugin_update_data ) {
|
||||
$status['errorMessage'] = __( 'Plugin update failed.' );
|
||||
if ( true === $result[ $plugin ] ) {
|
||||
$status['errorMessage'] = $upgrader->strings['up_to_date'];
|
||||
wp_send_json_error( $status );
|
||||
}
|
||||
|
||||
@ -4484,6 +4484,7 @@ function wp_ajax_update_plugin() {
|
||||
/* translators: %s: Plugin version. */
|
||||
$status['newVersion'] = sprintf( __( 'Version %s' ), $plugin_data['Version'] );
|
||||
}
|
||||
|
||||
wp_send_json_success( $status );
|
||||
} elseif ( false === $result ) {
|
||||
global $wp_filesystem;
|
||||
|
||||
@ -391,8 +391,8 @@ class Plugin_Upgrader extends WP_Upgrader {
|
||||
|
||||
unset( $past_failure_emails[ $plugin ] );
|
||||
}
|
||||
|
||||
update_option( 'auto_plugin_theme_update_emails', $past_failure_emails );
|
||||
reset( $results );
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
@ -500,8 +500,8 @@ class Theme_Upgrader extends WP_Upgrader {
|
||||
|
||||
unset( $past_failure_emails[ $theme ] );
|
||||
}
|
||||
|
||||
update_option( 'auto_plugin_theme_update_emails', $past_failure_emails );
|
||||
reset( $results );
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
@ -660,7 +660,7 @@ class WP_Upgrader {
|
||||
* @type array $hook_extra Extra arguments to pass to the filter hooks called by
|
||||
* WP_Upgrader::run().
|
||||
* }
|
||||
* @return array|false|WP_error The result from self::install_package() on success, otherwise a WP_Error,
|
||||
* @return array|false|WP_Error The result from self::install_package() on success, otherwise a WP_Error,
|
||||
* or false if unable to connect to the filesystem.
|
||||
*/
|
||||
public function run( $options ) {
|
||||
|
||||
@ -157,7 +157,7 @@ class Tests_Ajax_Update_Plugin extends WP_Ajax_UnitTestCase {
|
||||
'slug' => 'hello-dolly',
|
||||
'plugin' => 'hello.php',
|
||||
'pluginName' => 'Hello Dolly',
|
||||
'errorMessage' => 'Plugin update failed.',
|
||||
'errorMessage' => 'The plugin is at the latest version.',
|
||||
'oldVersion' => 'Version 1.7.2',
|
||||
'newVersion' => '',
|
||||
'debug' => array( 'The plugin is at the latest version.' ),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user