mirror of
https://github.com/WordPress/WordPress.git
synced 2024-11-05 02:10:45 +01:00
1a28ec87e1
Prior to about 2013, many class methods lacked even access modifiers which made the `@access` notations that much more useful. Now that we've gotten to a point where the codebase is more mature from a maintenance perspective and we can finally remove these notations. Notable exceptions to this change include standalone functions notated as private as well as some classes still considered to represent "private" APIs. See #41452. Built from https://develop.svn.wordpress.org/trunk@41161 git-svn-id: http://core.svn.wordpress.org/trunk@41001 1a063a9b-81f0-0310-95a4-ce76da25c4cd
71 lines
2.5 KiB
PHP
71 lines
2.5 KiB
PHP
<?php
|
|
/**
|
|
* Upgrader API: Plugin_Upgrader_Skin class
|
|
*
|
|
* @package WordPress
|
|
* @subpackage Upgrader
|
|
* @since 4.6.0
|
|
*/
|
|
|
|
/**
|
|
* Plugin Upgrader Skin for WordPress Plugin Upgrades.
|
|
*
|
|
* @since 2.8.0
|
|
* @since 4.6.0 Moved to its own file from wp-admin/includes/class-wp-upgrader-skins.php.
|
|
*
|
|
* @see WP_Upgrader_Skin
|
|
*/
|
|
class Plugin_Upgrader_Skin extends WP_Upgrader_Skin {
|
|
public $plugin = '';
|
|
public $plugin_active = false;
|
|
public $plugin_network_active = false;
|
|
|
|
/**
|
|
*
|
|
* @param array $args
|
|
*/
|
|
public function __construct( $args = array() ) {
|
|
$defaults = array( 'url' => '', 'plugin' => '', 'nonce' => '', 'title' => __('Update Plugin') );
|
|
$args = wp_parse_args($args, $defaults);
|
|
|
|
$this->plugin = $args['plugin'];
|
|
|
|
$this->plugin_active = is_plugin_active( $this->plugin );
|
|
$this->plugin_network_active = is_plugin_active_for_network( $this->plugin );
|
|
|
|
parent::__construct($args);
|
|
}
|
|
|
|
/**
|
|
*/
|
|
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 '<iframe title="' . esc_attr__( 'Update progress' ) . '" style="border:0;overflow:hidden" width="100%" height="170" src="' . wp_nonce_url( 'update.php?action=activate-plugin&networkwide=' . $this->plugin_network_active . '&plugin=' . urlencode( $this->plugin ), 'activate-plugin_' . $this->plugin ) . '"></iframe>';
|
|
}
|
|
|
|
$this->decrement_update_count( 'plugin' );
|
|
|
|
$update_actions = array(
|
|
'activate_plugin' => '<a href="' . wp_nonce_url( 'plugins.php?action=activate&plugin=' . urlencode( $this->plugin ), 'activate-plugin_' . $this->plugin) . '" target="_parent">' . __( 'Activate Plugin' ) . '</a>',
|
|
'plugins_page' => '<a href="' . self_admin_url( 'plugins.php' ) . '" target="_parent">' . __( 'Return to Plugins page' ) . '</a>'
|
|
);
|
|
if ( $this->plugin_active || ! $this->result || is_wp_error( $this->result ) || ! current_user_can( 'activate_plugins' ) )
|
|
unset( $update_actions['activate_plugin'] );
|
|
|
|
/**
|
|
* Filters the list of action links available following a single plugin update.
|
|
*
|
|
* @since 2.7.0
|
|
*
|
|
* @param array $update_actions Array of plugin action links.
|
|
* @param string $plugin Path to the plugin file.
|
|
*/
|
|
$update_actions = apply_filters( 'update_plugin_complete_actions', $update_actions, $this->plugin );
|
|
|
|
if ( ! empty($update_actions) )
|
|
$this->feedback(implode(' | ', (array)$update_actions));
|
|
}
|
|
}
|