diff -r 3d4e9c994f10 -r a86126ab1dd4 wp/wp-admin/includes/class-plugin-upgrader-skin.php --- a/wp/wp-admin/includes/class-plugin-upgrader-skin.php Tue Oct 22 16:11:46 2019 +0200 +++ b/wp/wp-admin/includes/class-plugin-upgrader-skin.php Tue Dec 15 13:49:49 2020 +0100 @@ -16,12 +16,43 @@ * @see WP_Upgrader_Skin */ class Plugin_Upgrader_Skin extends WP_Upgrader_Skin { - public $plugin = ''; - public $plugin_active = false; + + /** + * Holds the plugin slug in the Plugin Directory. + * + * @since 2.8.0 + * + * @var object + */ + public $plugin = ''; + + /** + * Whether the plugin is active. + * + * @since 2.8.0 + * + * @var bool + */ + public $plugin_active = false; + + /** + * Whether the plugin is active for the entire network. + * + * @since 2.8.0 + * + * @var bool + */ public $plugin_network_active = false; /** - * @param array $args + * Constructor. + * + * Sets up the plugin upgrader skin. + * + * @since 2.8.0 + * + * @param array $args Optional. The plugin upgrader skin arguments to + * override default options. Default empty array. */ public function __construct( $args = array() ) { $defaults = array( @@ -41,20 +72,36 @@ } /** + * Action to perform following a single plugin update. + * + * @since 2.8.0 */ public function after() { $this->plugin = $this->upgrader->plugin_info(); if ( ! empty( $this->plugin ) && ! is_wp_error( $this->result ) && $this->plugin_active ) { // Currently used only when JS is off for a single plugin update? - echo ''; + printf( + '', + esc_attr__( 'Update progress' ), + wp_nonce_url( 'update.php?action=activate-plugin&networkwide=' . $this->plugin_network_active . '&plugin=' . urlencode( $this->plugin ), 'activate-plugin_' . $this->plugin ) + ); } $this->decrement_update_count( 'plugin' ); $update_actions = array( - 'activate_plugin' => '' . __( 'Activate Plugin' ) . '', - 'plugins_page' => '' . __( 'Return to Plugins page' ) . '', + 'activate_plugin' => sprintf( + '%s', + wp_nonce_url( 'plugins.php?action=activate&plugin=' . urlencode( $this->plugin ), 'activate-plugin_' . $this->plugin ), + __( 'Activate Plugin' ) + ), + 'plugins_page' => sprintf( + '%s', + self_admin_url( 'plugins.php' ), + __( 'Return to Plugins page' ) + ), ); + if ( $this->plugin_active || ! $this->result || is_wp_error( $this->result ) || ! current_user_can( 'activate_plugin', $this->plugin ) ) { unset( $update_actions['activate_plugin'] ); }