コード例 #1
0
/**
 * Plugin upgrade display.
 *
 * @since 2.5
 *
 * @param string $plugin Plugin
 */
function do_plugin_upgrade($plugin)
{
    global $wp_filesystem;
    $url = wp_nonce_url("update.php?action=upgrade-plugin&plugin={$plugin}", "upgrade-plugin_{$plugin}");
    if (false === ($credentials = request_filesystem_credentials($url))) {
        return;
    }
    if (!WP_Filesystem($credentials)) {
        $error = true;
        if (is_object($wp_filesystem) && $wp_filesystem->errors->get_error_code()) {
            $error = $wp_filesystem->errors;
        }
        request_filesystem_credentials($url, '', $error);
        //Failed to connect, Error and request again
        return;
    }
    echo '<div class="wrap">';
    echo '<h2>' . __('Upgrade Plugin') . '</h2>';
    if ($wp_filesystem->errors->get_error_code()) {
        foreach ($wp_filesystem->errors->get_error_messages() as $message) {
            show_message($message);
        }
        echo '</div>';
        return;
    }
    $was_activated = is_plugin_active($plugin);
    //Check now, It'll be deactivated by the next line if it is
    $result = wp_update_plugin($plugin, 'show_message');
    if (is_wp_error($result)) {
        show_message($result);
        show_message(__('Plugin upgrade Failed'));
    } else {
        $plugin_file = $result;
        show_message(__('Plugin upgraded successfully'));
        if ($result && $was_activated) {
            show_message(__('Attempting reactivation of the plugin'));
            echo '<iframe style="border:0;overflow:hidden" width="100%" height="170px" src="' . wp_nonce_url('update.php?action=activate-plugin&plugin=' . $plugin_file, 'activate-plugin_' . $plugin_file) . '"></iframe>';
        }
        $update_actions = array('activate_plugin' => '<a href="' . wp_nonce_url('plugins.php?action=activate&amp;plugin=' . $plugin_file, 'activate-plugin_' . $plugin_file) . '" title="' . attribute_escape(__('Activate this plugin')) . '" target="_parent">' . __('Activate Plugin') . '</a>', 'plugins_page' => '<a href="' . admin_url('plugins.php') . '" title="' . attribute_escape(__('Goto plugins page')) . '" target="_parent">' . __('Return to Plugins page') . '</a>');
        if ($was_activated) {
            unset($update_actions['activate_plugin']);
        }
        $update_actions = apply_filters('update_plugin_complete_actions', $update_actions, $plugin_file);
        if (!empty($update_actions)) {
            show_message('<strong>' . __('Actions:') . '</strong> ' . implode(' | ', (array) $update_actions));
        }
    }
    echo '</div>';
}
コード例 #2
0
function do_plugin_upgrade($plugin)
{
    global $wp_filesystem;
    $url = wp_nonce_url("update.php?action=upgrade-plugin&plugin={$plugin}", "upgrade-plugin_{$plugin}");
    if (false === ($credentials = request_filesystem_credentials($url))) {
        return;
    }
    if (!WP_Filesystem($credentials)) {
        request_filesystem_credentials($url, '', true);
        //Failed to connect, Error and request again
        return;
    }
    echo '<div class="wrap">';
    echo '<h2>' . __('Upgrade Plugin') . '</h2>';
    if ($wp_filesystem->errors->get_error_code()) {
        foreach ($wp_filesystem->errors->get_error_messages() as $message) {
            show_message($message);
        }
        echo '</div>';
        return;
    }
    $was_activated = is_plugin_active($plugin);
    //Check now, It'll be deactivated by the next line if it is,
    $result = wp_update_plugin($plugin, 'show_message');
    if (is_wp_error($result)) {
        show_message($result);
    } else {
        //Result is the new plugin file relative to PLUGINDIR
        show_message(__('Plugin upgraded successfully'));
        if ($result && $was_activated) {
            show_message(__('Attempting reactivation of the plugin'));
            echo '<iframe style="border:0" width="100%" height="170px" src="' . wp_nonce_url('update.php?action=activate-plugin&plugin=' . $result, 'activate-plugin_' . $result) . '"></iframe>';
        }
    }
    echo '</div>';
}