Updates: Force an update check to occur when the 'Check Again' button is used in the Dashboard. Fixes #25831

Built from https://develop.svn.wordpress.org/trunk@26192


git-svn-id: http://core.svn.wordpress.org/trunk@26100 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Dion Hulse 2013-11-15 03:04:10 +00:00
parent c2bc0e6836
commit cd6096c44b
2 changed files with 11 additions and 5 deletions

View File

@ -483,8 +483,10 @@ get_current_screen()->set_help_sidebar(
);
if ( 'upgrade-core' == $action ) {
// Force a update check when requested
$force_check = ! empty( $_GET['force-check'] );
wp_version_check( array(), $force_check );
wp_version_check();
require_once(ABSPATH . 'wp-admin/admin-header.php');
?>
<div class="wrap">
@ -503,7 +505,7 @@ if ( 'upgrade-core' == $action ) {
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' ) ) );
echo ' &nbsp; <a class="button" href="' . esc_url( self_admin_url('update-core.php') ) . '">' . __( 'Check Again' ) . '</a>';
echo ' &nbsp; <a class="button" href="' . esc_url( self_admin_url('update-core.php?force-check=1') ) . '">' . __( 'Check Again' ) . '</a>';
echo '</p>';
if ( $core = current_user_can( 'update_core' ) )

View File

@ -18,9 +18,10 @@
* @uses $wp_version Used to check against the newest WordPress version.
*
* @param array $extra_stats Extra statistics to report to the WordPress.org API.
* @param bool $force_check Whether to bypass the transient cache and force a fresh update check. Defaults to false, true if $extra_stats is set.
* @return mixed Returns null if update is unsupported. Returns false if check is too soon.
*/
function wp_version_check( $extra_stats = array() ) {
function wp_version_check( $extra_stats = array(), $force_check = false ) {
if ( defined('WP_INSTALLING') )
return;
@ -41,10 +42,13 @@ function wp_version_check( $extra_stats = array() ) {
$current->version_checked = $wp_version;
}
if ( ! empty( $extra_stats ) )
$force_check = true;
// Wait 60 seconds between multiple version check requests
$timeout = 60;
$time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked );
if ( $time_not_changed && empty( $extra_stats ) )
if ( ! $force_check && $time_not_changed )
return false;
$locale = get_locale();
@ -94,7 +98,7 @@ function wp_version_check( $extra_stats = array() ) {
'translations' => json_encode( $translations ),
);
if ( $extra_stats )
if ( is_array( $extra_stats ) )
$post_body = array_merge( $post_body, $extra_stats );
$url = $http_url = 'http://api.wordpress.org/core/version-check/1.7/?' . http_build_query( $query, null, '&' );