X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/a349837896628462bf8c9bdc27d1477a10fe03eb..245e789b234afa4525862e7a6e5e3c2e7a52ef20:/wp-includes/update.php diff --git a/wp-includes/update.php b/wp-includes/update.php index ead8e398..3639907b 100644 --- a/wp-includes/update.php +++ b/wp-includes/update.php @@ -13,7 +13,6 @@ * WordPress server at api.wordpress.org server. Will only check if WordPress * isn't installing. * - * @package WordPress * @since 2.3.0 * @uses $wp_version Used to check against the newest WordPress version. * @@ -117,7 +116,7 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) { $response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $response ) ) { - trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)', headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); + trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $response = wp_remote_post( $http_url, $options ); } @@ -143,7 +142,7 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) { $offer[ $offer_key ] = esc_html( $value ); } $offer = (object) array_intersect_key( $offer, array_fill_keys( array( 'response', 'download', 'locale', - 'packages', 'current', 'version', 'php_version', 'mysql_version', 'new_bundled', 'partial_version', 'notify_email' ), '' ) ); + 'packages', 'current', 'version', 'php_version', 'mysql_version', 'new_bundled', 'partial_version', 'notify_email', 'support_email' ), '' ) ); } $updates = new stdClass(); @@ -154,7 +153,20 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) { if ( isset( $body['translations'] ) ) $updates->translations = $body['translations']; - set_site_transient( 'update_core', $updates); + set_site_transient( 'update_core', $updates ); + + if ( ! empty( $body['ttl'] ) ) { + $ttl = (int) $body['ttl']; + if ( $ttl && ( time() + $ttl < wp_next_scheduled( 'wp_version_check' ) ) ) { + // Queue an event to re-run the update check in $ttl seconds. + wp_schedule_single_event( time() + $ttl, 'wp_version_check' ); + } + } + + // Trigger a background updates check if running non-interactively, and we weren't called from the update handler. + if ( defined( 'DOING_CRON' ) && DOING_CRON && ! doing_action( 'wp_maybe_auto_update' ) ) { + do_action( 'wp_maybe_auto_update' ); + } } /** @@ -164,7 +176,6 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) { * all plugins installed. Checks against the WordPress server at * api.wordpress.org. Will only check if WordPress isn't installing. * - * @package WordPress * @since 2.3.0 * @uses $wp_version Used to notify the WordPress version. * @@ -205,7 +216,11 @@ function wp_update_plugins( $extra_stats = array() ) { $timeout = HOUR_IN_SECONDS; break; default : - $timeout = 12 * HOUR_IN_SECONDS; + if ( defined( 'DOING_CRON' ) && DOING_CRON ) { + $timeout = 0; + } else { + $timeout = 12 * HOUR_IN_SECONDS; + } } $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); @@ -269,7 +284,7 @@ function wp_update_plugins( $extra_stats = array() ) { $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { - trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)', headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); + trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } @@ -300,7 +315,6 @@ function wp_update_plugins( $extra_stats = array() ) { * WordPress server at api.wordpress.org. Will only check if WordPress isn't * installing. * - * @package WordPress * @since 2.7.0 * @uses $wp_version Used to notify the WordPress version. * @@ -352,7 +366,11 @@ function wp_update_themes( $extra_stats = array() ) { $timeout = HOUR_IN_SECONDS; break; default : - $timeout = 12 * HOUR_IN_SECONDS; + if ( defined( 'DOING_CRON' ) && DOING_CRON ) { + $timeout = 0; + } else { + $timeout = 12 * HOUR_IN_SECONDS; + } } $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time() - $last_update->last_checked ); @@ -414,7 +432,7 @@ function wp_update_themes( $extra_stats = array() ) { $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { - trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)', headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); + trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); }