}
if ( ! current_user_can( 'update_core' ) && ! current_user_can( 'update_themes' ) && ! current_user_can( 'update_plugins' ) )
- wp_die( __( 'You do not have sufficient permissions to update this site.' ) );
+ wp_die( __( 'Sorry, you are not allowed to update this site.' ) );
/**
*
* @global string $wp_local_package
* @global wpdb $wpdb
- * @global string $wp_version
*
* @staticvar bool $first_pass
*
* @param object $update
*/
function list_core_update( $update ) {
- global $wp_local_package, $wpdb, $wp_version;
+ global $wp_local_package, $wpdb;
static $first_pass = true;
+ $wp_version = get_bloginfo( 'version' );
+
if ( 'en_US' == $update->locale && 'en_US' == get_locale() )
$version_string = $update->current;
// If the only available update is a partial builds, it doesn't need a language-specific version string.
$mysql_version = $wpdb->db_version();
$show_buttons = true;
if ( 'development' == $update->response ) {
- $message = __('You are using a development version of WordPress. You can update to the latest nightly build automatically or download the nightly build and install it manually:');
- $download = __('Download nightly build');
+ $message = __('You are using a development version of WordPress. You can update to the latest nightly build automatically:');
} else {
if ( $current ) {
- $message = sprintf( __( 'If you need to re-install version %s, you can do so here or download the package and re-install manually:' ), $version_string );
+ $message = sprintf( __( 'If you need to re-install version %s, you can do so here:' ), $version_string );
$submit = __('Re-install Now');
$form_action = 'update-core.php?action=do-core-reinstall';
} else {
$mysql_compat = version_compare( $mysql_version, $update->mysql_version, '>=' );
if ( !$mysql_compat && !$php_compat )
+ /* translators: 1: WordPress version number, 2: Minimum required PHP version number, 3: Minimum required MySQL version number, 4: Current PHP version number, 5: Current MySQL version number */
$message = sprintf( __('You cannot update because <a href="https://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> requires PHP version %2$s or higher and MySQL version %3$s or higher. You are running PHP version %4$s and MySQL version %5$s.'), $update->current, $update->php_version, $update->mysql_version, $php_version, $mysql_version );
elseif ( !$php_compat )
+ /* translators: 1: WordPress version number, 2: Minimum required PHP version number, 3: Current PHP version number */
$message = sprintf( __('You cannot update because <a href="https://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> requires PHP version %2$s or higher. You are running version %3$s.'), $update->current, $update->php_version, $php_version );
elseif ( !$mysql_compat )
+ /* translators: 1: WordPress version number, 2: Minimum required MySQL version number, 3: Current MySQL version number */
$message = sprintf( __('You cannot update because <a href="https://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> requires MySQL version %2$s or higher. You are running version %3$s.'), $update->current, $update->mysql_version, $mysql_version );
else
- $message = sprintf(__('You can update to <a href="https://codex.wordpress.org/Version_%1$s">WordPress %2$s</a> automatically or download the package and install it manually:'), $update->current, $version_string);
+ /* translators: 1: WordPress version number, 2: WordPress version number including locale if necessary */
+ $message = sprintf(__('You can update to <a href="https://codex.wordpress.org/Version_%1$s">WordPress %2$s</a> automatically:'), $update->current, $version_string);
if ( !$mysql_compat || !$php_compat )
$show_buttons = false;
}
- $download = sprintf(__('Download %s'), $version_string);
}
echo '<p>';
echo '<input name="locale" value="'. esc_attr($update->locale) .'" type="hidden"/>';
if ( $show_buttons ) {
if ( $first_pass ) {
- submit_button( $submit, $current ? 'button' : 'primary regular', 'upgrade', false );
+ submit_button( $submit, $current ? '' : 'primary regular', 'upgrade', false );
$first_pass = false;
} else {
- submit_button( $submit, 'button', 'upgrade', false );
+ submit_button( $submit, '', 'upgrade', false );
}
- echo ' <a href="' . esc_url( $update->download ) . '" class="button">' . $download . '</a> ';
}
if ( 'en_US' != $update->locale )
if ( !isset( $update->dismissed ) || !$update->dismissed )
- submit_button( __('Hide this update'), 'button', 'dismiss', false );
+ submit_button( __( 'Hide this update' ), '', 'dismiss', false );
else
- submit_button( __('Bring back this update'), 'button', 'undismiss', false );
+ submit_button( __( 'Bring back this update' ), '', 'undismiss', false );
echo '</p>';
if ( 'en_US' != $update->locale && ( !isset($wp_local_package) || $wp_local_package != $update->locale ) )
echo '<p class="hint">'.__('This localized version contains both the translation and various other localization fixes. You can skip upgrading if you want to keep your current translation.').'</p>';
*
* @since 2.7.0
*
- * @global string $wp_version
* @global string $required_php_version
* @global string $required_mysql_version
*/
function core_upgrade_preamble() {
- global $wp_version, $required_php_version, $required_mysql_version;
+ global $required_php_version, $required_mysql_version;
+ $wp_version = get_bloginfo( 'version' );
$updates = get_core_updates();
if ( !isset($updates[0]->response) || 'latest' == $updates[0]->response ) {
dismissed_updates();
}
-/**
- *
- * @global string $wp_version
- */
function list_plugin_updates() {
- global $wp_version;
-
- $cur_wp_version = preg_replace('/-.*$/', '', $wp_version);
+ $wp_version = get_bloginfo( 'version' );
+ $cur_wp_version = preg_replace( '/-.*$/', '', $wp_version );
require_once(ABSPATH . 'wp-admin/includes/plugin-install.php');
$plugins = get_plugin_updates();
<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">
+<table class="widefat updates-table" 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>
+ <td class="manage-column check-column"><input type="checkbox" id="plugins-select-all" /></td>
+ <td class="manage-column"><label for="plugins-select-all"><?php _e( 'Select All' ); ?></label></td>
</tr>
</thead>
<tbody class="plugins">
<?php
foreach ( (array) $plugins as $plugin_file => $plugin_data ) {
- $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, '>=') ) {
+ if ( isset($plugin_data->update->tested) && version_compare($plugin_data->update->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]);
+ } elseif ( isset($plugin_data->update->compatibility->{$cur_wp_version}) ) {
+ $compat = $plugin_data->update->compatibility->{$cur_wp_version};
+ $compat = '<br />' . sprintf(__('Compatibility with WordPress %1$s: %2$d%% (%3$d "works" votes out of %4$d total)'), $cur_wp_version, $compat->percent, $compat->votes, $compat->total_votes);
} 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, '>=' ) ) {
+ if ( isset( $plugin_data->update->tested ) && version_compare( $plugin_data->update->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]);
+ } elseif ( isset( $plugin_data->update->compatibility->{$core_update_version} ) ) {
+ $update_compat = $plugin_data->update->compatibility->{$core_update_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->percent, $update_compat->votes, $update_compat->total_votes);
} else {
$compat .= '<br />' . sprintf(__('Compatibility with WordPress %1$s: Unknown'), $core_update_version);
}
}
$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 "
- <tr>
- <th scope='row' class='check-column'><input type='checkbox' name='checked[]' value='" . esc_attr($plugin_file) . "' /></th>
- <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>
- </tr>";
+ $details = sprintf(
+ '<a href="%1$s" class="thickbox open-plugin-details-modal" aria-label="%2$s">%3$s</a>',
+ esc_url( $details_url ),
+ /* translators: 1: plugin name, 2: version number */
+ esc_attr( sprintf( __( 'View %1$s version %2$s details' ), $plugin_data->Name, $plugin_data->update->new_version ) ),
+ /* translators: %s: plugin version */
+ sprintf( __( 'View version %s details.' ), $plugin_data->update->new_version )
+ );
+
+ $checkbox_id = "checkbox_" . md5( $plugin_data->Name );
+ ?>
+ <tr>
+ <td class="check-column">
+ <input type="checkbox" name="checked[]" id="<?php echo $checkbox_id; ?>" value="<?php echo esc_attr( $plugin_file ); ?>" />
+ <label for="<?php echo $checkbox_id; ?>" class="screen-reader-text"><?php
+ /* translators: %s: plugin name */
+ printf( __( 'Select %s' ),
+ $plugin_data->Name
+ );
+ ?></label>
+ </td>
+ <td class="plugin-title"><p>
+ <strong><?php echo $plugin_data->Name; ?></strong>
+ <?php
+ /* translators: 1: plugin version, 2: new version */
+ printf( __( 'You have version %1$s installed. Update to %2$s.' ),
+ $plugin_data->Version,
+ $plugin_data->update->new_version
+ );
+ echo ' ' . $details . $compat . $upgrade_notice;
+ ?>
+ </p></td>
+ </tr>
+ <?php
}
?>
</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>
+ <td class="manage-column check-column"><input type="checkbox" id="plugins-select-all-2" /></td>
+ <td class="manage-column"><label for="plugins-select-all-2"><?php _e( 'Select All' ); ?></label></td>
</tr>
</tfoot>
</table>
<form method="post" action="<?php echo esc_url( $form_action ); ?>" name="upgrade-themes" class="upgrade">
<?php wp_nonce_field('upgrade-core'); ?>
<p><input id="upgrade-themes" class="button" type="submit" value="<?php esc_attr_e('Update Themes'); ?>" name="upgrade" /></p>
-<table class="widefat" id="update-themes-table">
+<table class="widefat updates-table" id="update-themes-table">
<thead>
<tr>
- <td scope="col" class="manage-column check-column"><input type="checkbox" id="themes-select-all" /></td>
- <th scope="col" class="manage-column"><label for="themes-select-all"><?php _e('Select All'); ?></label></th>
+ <td class="manage-column check-column"><input type="checkbox" id="themes-select-all" /></td>
+ <td class="manage-column"><label for="themes-select-all"><?php _e( 'Select All' ); ?></label></td>
</tr>
</thead>
<tbody class="plugins">
<?php
foreach ( $themes as $stylesheet => $theme ) {
- echo "
- <tr>
- <th scope='row' class='check-column'><input type='checkbox' name='checked[]' value='" . esc_attr( $stylesheet ) . "' /></th>
- <td class='plugin-title'><img src='" . esc_url( $theme->get_screenshot() ) . "' width='85' height='64' style='float:left; padding: 0 5px 5px' alt='' /><strong>" . $theme->display('Name') . '</strong> ' . sprintf( __( 'You have version %1$s installed. Update to %2$s.' ), $theme->display('Version'), $theme->update['new_version'] ) . "</td>
- </tr>";
+ $checkbox_id = 'checkbox_' . md5( $theme->get( 'Name' ) );
+ ?>
+ <tr>
+ <td class="check-column">
+ <input type="checkbox" name="checked[]" id="<?php echo $checkbox_id; ?>" value="<?php echo esc_attr( $stylesheet ); ?>" />
+ <label for="<?php echo $checkbox_id; ?>" class="screen-reader-text"><?php
+ /* translators: %s: theme name */
+ printf( __( 'Select %s' ),
+ $theme->display( 'Name' )
+ );
+ ?></label>
+ </td>
+ <td class="plugin-title"><p>
+ <img src="<?php echo esc_url( $theme->get_screenshot() ); ?>" width="85" height="64" class="updates-table-screenshot" alt="" />
+ <strong><?php echo $theme->display( 'Name' ); ?></strong>
+ <?php
+ /* translators: 1: theme version, 2: new version */
+ printf( __( 'You have version %1$s installed. Update to %2$s.' ),
+ $theme->display( 'Version' ),
+ $theme->update['new_version']
+ );
+ ?>
+ </p></td>
+ </tr>
+ <?php
}
?>
</tbody>
<tfoot>
<tr>
- <td scope="col" class="manage-column check-column"><input type="checkbox" id="themes-select-all-2" /></td>
- <th scope="col" class="manage-column"><label for="themes-select-all-2"><?php _e( 'Select All' ); ?></label></th>
+ <td class="manage-column check-column"><input type="checkbox" id="themes-select-all-2" /></td>
+ <td class="manage-column"><label for="themes-select-all-2"><?php _e( 'Select All' ); ?></label></td>
</tr>
</tfoot>
</table>
if ( is_wp_error($result) ) {
show_message($result);
- if ('up_to_date' != $result->get_error_code() )
+ if ( 'up_to_date' != $result->get_error_code() && 'locked' != $result->get_error_code() )
show_message( __('Installation Failed') );
echo '</div>';
return;
get_current_screen()->set_help_sidebar(
'<p><strong>' . __('For more information:') . '</strong></p>' .
- '<p>' . __( '<a href="https://codex.wordpress.org/Dashboard_Updates_Screen" target="_blank">Documentation on Updating WordPress</a>' ) . '</p>' .
- '<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
+ '<p>' . __( '<a href="https://codex.wordpress.org/Dashboard_Updates_Screen">Documentation on Updating WordPress</a>' ) . '</p>' .
+ '<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>'
);
if ( 'upgrade-core' == $action ) {
echo '</p></div>';
}
+ $last_update_check = false;
+ $current = get_site_transient( 'update_core' );
+
+ if ( $current && isset ( $current->last_checked ) ) {
+ $last_update_check = $current->last_checked + get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
+ }
+
echo '<p>';
/* translators: %1 date, %2 time. */
- printf( __('Last checked on %1$s at %2$s.'), date_i18n( get_option( 'date_format' ) ), date_i18n( get_option( 'time_format' ) ) );
+ printf( __( 'Last checked on %1$s at %2$s.' ), date_i18n( __( 'F j, Y' ), $last_update_check ), date_i18n( __( 'g:i a' ), $last_update_check ) );
echo ' <a class="button" href="' . esc_url( self_admin_url('update-core.php?force-check=1') ) . '">' . __( 'Check Again' ) . '</a>';
echo '</p>';
*/
do_action( 'core_upgrade_preamble' );
echo '</div>';
+
+ wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
+ 'totals' => wp_get_update_data(),
+ ) );
+
include(ABSPATH . 'wp-admin/admin-footer.php');
} elseif ( 'do-core-upgrade' == $action || 'do-core-reinstall' == $action ) {
if ( ! current_user_can( 'update_core' ) )
- wp_die( __( 'You do not have sufficient permissions to update this site.' ) );
+ wp_die( __( 'Sorry, you are not allowed to update this site.' ) );
check_admin_referer('upgrade-core');
if ( isset( $_POST['upgrade'] ) )
do_core_upgrade($reinstall);
+ wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
+ 'totals' => wp_get_update_data(),
+ ) );
+
include(ABSPATH . 'wp-admin/admin-footer.php');
} elseif ( 'do-plugin-upgrade' == $action ) {
if ( ! current_user_can( 'update_plugins' ) )
- wp_die( __( 'You do not have sufficient permissions to update this site.' ) );
+ wp_die( __( 'Sorry, you are not allowed to update this site.' ) );
check_admin_referer('upgrade-core');
require_once(ABSPATH . 'wp-admin/admin-header.php');
echo '<div class="wrap">';
echo '<h1>' . __( 'Update Plugins' ) . '</h1>';
- echo '<iframe src="', $url, '" style="width: 100%; height: 100%; min-height: 750px;" frameborder="0"></iframe>';
+ echo '<iframe src="', $url, '" style="width: 100%; height: 100%; min-height: 750px;" frameborder="0" title="' . esc_attr__( 'Update progress' ) . '"></iframe>';
echo '</div>';
+
+ wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
+ 'totals' => wp_get_update_data(),
+ ) );
+
include(ABSPATH . 'wp-admin/admin-footer.php');
} elseif ( 'do-theme-upgrade' == $action ) {
if ( ! current_user_can( 'update_themes' ) )
- wp_die( __( 'You do not have sufficient permissions to update this site.' ) );
+ wp_die( __( 'Sorry, you are not allowed to update this site.' ) );
check_admin_referer('upgrade-core');
?>
<div class="wrap">
<h1><?php _e( 'Update Themes' ); ?></h1>
- <iframe src="<?php echo $url ?>" style="width: 100%; height: 100%; min-height: 750px;" frameborder="0"></iframe>
+ <iframe src="<?php echo $url ?>" style="width: 100%; height: 100%; min-height: 750px;" frameborder="0" title="<?php esc_attr_e( 'Update progress' ); ?>"></iframe>
</div>
<?php
+
+ wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
+ 'totals' => wp_get_update_data(),
+ ) );
+
include(ABSPATH . 'wp-admin/admin-footer.php');
} elseif ( 'do-translation-upgrade' == $action ) {
if ( ! current_user_can( 'update_core' ) && ! current_user_can( 'update_plugins' ) && ! current_user_can( 'update_themes' ) )
- wp_die( __( 'You do not have sufficient permissions to update this site.' ) );
+ wp_die( __( 'Sorry, you are not allowed to update this site.' ) );
check_admin_referer( 'upgrade-translations' );
$upgrader = new Language_Pack_Upgrader( new Language_Pack_Upgrader_Skin( compact( 'url', 'nonce', 'title', 'context' ) ) );
$result = $upgrader->bulk_upgrade();
+ wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
+ 'totals' => wp_get_update_data(),
+ ) );
+
require_once( ABSPATH . 'wp-admin/admin-footer.php' );
} else {