'web', 'url' => '', 'plugin' => '', 'nonce' => '', 'title' => '');
$args = wp_parse_args($args, $defaults);
$this->type = $args['type'];
$this->api = isset($args['api']) ? $args['api'] : array();
parent::__construct($args);
}
/**
*/
public function before() {
if (!empty($this->api))
$this->upgrader->strings['process_success'] = sprintf(__('Successfully installed the plugin %s %s.'), $this->api->name, $this->api->version);
}
/**
*/
public function after() {
$plugin_file = $this->upgrader->plugin_info();
$install_actions = array();
$from = isset($_GET['from']) ? wp_unslash($_GET['from']) : 'plugins';
if ('import' == $from) {
$install_actions['activate_plugin'] = '' . __('Activate Plugin & Run Importer') . '';
} else if ('press-this' == $from) {
$install_actions['activate_plugin'] = '' . __('Activate Plugin & Return to Press This') . '';
} else {
$install_actions['activate_plugin'] = '' . __('Activate Plugin') . '';
}
if (is_multisite() && current_user_can('manage_network_plugins')) {
$install_actions['network_activate'] = '' . __('Network Activate') . '';
unset($install_actions['activate_plugin']);
}
if ('import' == $from) {
$install_actions['importers_page'] = '' . __('Return to Importers') . '';
} elseif ($this->type == 'web') {
$install_actions['plugins_page'] = '' . __('Return to Plugin Installer') . '';
} elseif ('upload' == $this->type && 'plugins' == $from) {
$install_actions['plugins_page'] = '' . __('Return to Plugin Installer') . '';
} else {
$install_actions['plugins_page'] = '' . __('Return to Plugins page') . '';
}
if (!$this->result || is_wp_error($this->result)) {
unset($install_actions['activate_plugin'], $install_actions['network_activate']);
} elseif (!current_user_can('activate_plugin', $plugin_file)) {
unset($install_actions['activate_plugin']);
}
/**
* Filters the list of action links available following a single plugin installation.
*
* @since 2.7.0
*
* @param array $install_actions Array of plugin action links.
* @param object $api Object containing WordPress.org API plugin data. Empty
* for non-API installs, such as when a plugin is installed
* via upload.
* @param string $plugin_file Path to the plugin file.
*/
$install_actions = apply_filters('install_plugin_complete_actions', $install_actions, $this->api, $plugin_file);
if (!empty($install_actions)) {
$this->feedback(implode(' ', (array) $install_actions));
}
}
public function feedback($string, ...$args) { /* no output */
}
}