[ Index ]

PHP Cross Reference of WordPress Trunk (Updated Daily)

Search

title

Body

[close]

/wp-admin/includes/ -> class-plugin-upgrader-skin.php (source)

   1  <?php
   2  /**
   3   * Upgrader API: Plugin_Upgrader_Skin class
   4   *
   5   * @package WordPress
   6   * @subpackage Upgrader
   7   * @since 4.6.0
   8   */
   9  
  10  /**
  11   * Plugin Upgrader Skin for WordPress Plugin Upgrades.
  12   *
  13   * @since 2.8.0
  14   * @since 4.6.0 Moved to its own file from wp-admin/includes/class-wp-upgrader-skins.php.
  15   *
  16   * @see WP_Upgrader_Skin
  17   */
  18  class Plugin_Upgrader_Skin extends WP_Upgrader_Skin {
  19  
  20      /**
  21       * Holds the plugin slug in the Plugin Directory.
  22       *
  23       * @since 2.8.0
  24       *
  25       * @var string
  26       */
  27      public $plugin = '';
  28  
  29      /**
  30       * Whether the plugin is active.
  31       *
  32       * @since 2.8.0
  33       *
  34       * @var bool
  35       */
  36      public $plugin_active = false;
  37  
  38      /**
  39       * Whether the plugin is active for the entire network.
  40       *
  41       * @since 2.8.0
  42       *
  43       * @var bool
  44       */
  45      public $plugin_network_active = false;
  46  
  47      /**
  48       * Constructor.
  49       *
  50       * Sets up the plugin upgrader skin.
  51       *
  52       * @since 2.8.0
  53       *
  54       * @param array $args Optional. The plugin upgrader skin arguments to
  55       *                    override default options. Default empty array.
  56       */
  57  	public function __construct( $args = array() ) {
  58          $defaults = array(
  59              'url'    => '',
  60              'plugin' => '',
  61              'nonce'  => '',
  62              'title'  => __( 'Update Plugin' ),
  63          );
  64          $args     = wp_parse_args( $args, $defaults );
  65  
  66          $this->plugin = $args['plugin'];
  67  
  68          $this->plugin_active         = is_plugin_active( $this->plugin );
  69          $this->plugin_network_active = is_plugin_active_for_network( $this->plugin );
  70  
  71          parent::__construct( $args );
  72      }
  73  
  74      /**
  75       * Performs an action following a single plugin update.
  76       *
  77       * @since 2.8.0
  78       */
  79  	public function after() {
  80          $this->plugin = $this->upgrader->plugin_info();
  81          if ( ! empty( $this->plugin ) && ! is_wp_error( $this->result ) && $this->plugin_active ) {
  82              // Currently used only when JS is off for a single plugin update?
  83              printf(
  84                  '<iframe title="%s" style="border:0;overflow:hidden" width="100%%" height="170" src="%s"></iframe>',
  85                  esc_attr__( 'Update progress' ),
  86                  wp_nonce_url( 'update.php?action=activate-plugin&networkwide=' . $this->plugin_network_active . '&plugin=' . urlencode( $this->plugin ), 'activate-plugin_' . $this->plugin )
  87              );
  88          }
  89  
  90          $this->decrement_update_count( 'plugin' );
  91  
  92          $update_actions = array(
  93              'activate_plugin' => sprintf(
  94                  '<a href="%s" target="_parent">%s</a>',
  95                  wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . urlencode( $this->plugin ), 'activate-plugin_' . $this->plugin ),
  96                  __( 'Activate Plugin' )
  97              ),
  98              'plugins_page'    => sprintf(
  99                  '<a href="%s" target="_parent">%s</a>',
 100                  self_admin_url( 'plugins.php' ),
 101                  __( 'Go to Plugins page' )
 102              ),
 103          );
 104  
 105          if ( $this->plugin_active || ! $this->result || is_wp_error( $this->result ) || ! current_user_can( 'activate_plugin', $this->plugin ) ) {
 106              unset( $update_actions['activate_plugin'] );
 107          }
 108  
 109          /**
 110           * Filters the list of action links available following a single plugin update.
 111           *
 112           * @since 2.7.0
 113           *
 114           * @param string[] $update_actions Array of plugin action links.
 115           * @param string   $plugin         Path to the plugin file relative to the plugins directory.
 116           */
 117          $update_actions = apply_filters( 'update_plugin_complete_actions', $update_actions, $this->plugin );
 118  
 119          if ( ! empty( $update_actions ) ) {
 120              $this->feedback( implode( ' | ', (array) $update_actions ) );
 121          }
 122      }
 123  }


Generated : Fri Apr 26 08:20:02 2024 Cross-referenced by PHPXref