WordPress Version: 4.6
/**
*
* @global string $wp_version
*/
function list_plugin_updates()
{
global $wp_version;
$cur_wp_version = preg_replace('/-.*$/', '', $wp_version);
require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
$plugins = get_plugin_updates();
if (empty($plugins)) {
echo '<h2>' . __('Plugins') . '</h2>';
echo '<p>' . __('Your plugins are all up to date.') . '</p>';
return;
}
$form_action = 'update-core.php?action=do-plugin-upgrade';
$core_updates = get_core_updates();
if (!isset($core_updates[0]->response) || 'latest' == $core_updates[0]->response || 'development' == $core_updates[0]->response || version_compare($core_updates[0]->current, $cur_wp_version, '=')) {
$core_update_version = false;
} else {
$core_update_version = $core_updates[0]->current;
}
?>
<h2><?php
_e('Plugins');
?></h2>
<p><?php
_e('The following plugins have new versions available. Check the ones you want to update and then click “Update Plugins”.');
?></p>
<form method="post" action="<?php
echo esc_url($form_action);
?>" name="upgrade-plugins" class="upgrade">
<?php
wp_nonce_field('upgrade-core');
?>
<p><input id="upgrade-plugins" class="button" type="submit" value="<?php
esc_attr_e('Update Plugins');
?>" name="upgrade" /></p>
<table class="widefat" id="update-plugins-table">
<thead>
<tr>
<td scope="col" class="manage-column check-column"><input type="checkbox" id="plugins-select-all" /></td>
<th scope="col" class="manage-column"><label for="plugins-select-all"><?php
_e('Select All');
?></label></th>
</tr>
</thead>
<tbody class="plugins">
<?php
foreach ((array) $plugins as $plugin_file => $plugin_data) {
$plugin_data = (object) _get_plugin_data_markup_translate($plugin_file, (array) $plugin_data, false, true);
$info = plugins_api('plugin_information', array('slug' => $plugin_data->update->slug, 'fields' => array('short_description' => false, 'sections' => false, 'requires' => false, 'rating' => false, 'ratings' => false, 'downloaded' => false, 'downloadlink' => false, 'last_updated' => false, 'added' => false, 'tags' => false, 'homepage' => false, 'donate_link' => false)));
if (is_wp_error($info)) {
$info = false;
}
// Get plugin compat for running version of WordPress.
if (isset($info->tested) && version_compare($info->tested, $cur_wp_version, '>=')) {
$compat = '<br />' . sprintf(__('Compatibility with WordPress %1$s: 100%% (according to its author)'), $cur_wp_version);
} elseif (isset($info->compatibility[$cur_wp_version][$plugin_data->update->new_version])) {
$compat = $info->compatibility[$cur_wp_version][$plugin_data->update->new_version];
$compat = '<br />' . sprintf(__('Compatibility with WordPress %1$s: %2$d%% (%3$d "works" votes out of %4$d total)'), $cur_wp_version, $compat[0], $compat[2], $compat[1]);
} else {
$compat = '<br />' . sprintf(__('Compatibility with WordPress %1$s: Unknown'), $cur_wp_version);
}
// Get plugin compat for updated version of WordPress.
if ($core_update_version) {
if (isset($info->tested) && version_compare($info->tested, $core_update_version, '>=')) {
$compat .= '<br />' . sprintf(__('Compatibility with WordPress %1$s: 100%% (according to its author)'), $core_update_version);
} elseif (isset($info->compatibility[$core_update_version][$plugin_data->update->new_version])) {
$update_compat = $info->compatibility[$core_update_version][$plugin_data->update->new_version];
$compat .= '<br />' . sprintf(__('Compatibility with WordPress %1$s: %2$d%% (%3$d "works" votes out of %4$d total)'), $core_update_version, $update_compat[0], $update_compat[2], $update_compat[1]);
} else {
$compat .= '<br />' . sprintf(__('Compatibility with WordPress %1$s: Unknown'), $core_update_version);
}
}
// Get the upgrade notice for the new plugin version.
if (isset($plugin_data->update->upgrade_notice)) {
$upgrade_notice = '<br />' . strip_tags($plugin_data->update->upgrade_notice);
} else {
$upgrade_notice = '';
}
$details_url = self_admin_url('plugin-install.php?tab=plugin-information&plugin=' . $plugin_data->update->slug . '§ion=changelog&TB_iframe=true&width=640&height=662');
$details_text = sprintf(__('View version %1$s details.'), $plugin_data->update->new_version);
$details = sprintf('<a href="%1$s" class="thickbox" title="%2$s">%3$s</a>', esc_url($details_url), esc_attr($plugin_data->Name), $details_text);
echo "\n\t<tr>\n\t\t<th scope='row' class='check-column'><input type='checkbox' name='checked[]' value='" . esc_attr($plugin_file) . "' /></th>\n\t\t<td><p><strong>{$plugin_data->Name}</strong><br />" . sprintf(__('You have version %1$s installed. Update to %2$s.'), $plugin_data->Version, $plugin_data->update->new_version) . ' ' . $details . $compat . $upgrade_notice . "</p></td>\n\t</tr>";
}
?>
</tbody>
<tfoot>
<tr>
<td scope="col" class="manage-column check-column"><input type="checkbox" id="plugins-select-all-2" /></td>
<th scope="col" class="manage-column"><label for="plugins-select-all-2"><?php
_e('Select All');
?></label></th>
</tr>
</tfoot>
</table>
<p><input id="upgrade-plugins-2" class="button" type="submit" value="<?php
esc_attr_e('Update Plugins');
?>" name="upgrade" /></p>
</form>
<?php
}