X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/48ab98cb1779cf2088c1351ac3dd3d0da6fb31d3..caeaf8dc94b5e3f75dc98ec92dc7b76049cdddb6:/wp-includes/update.php diff --git a/wp-includes/update.php b/wp-includes/update.php index a9e25a87..a32b1e88 100644 --- a/wp-includes/update.php +++ b/wp-includes/update.php @@ -18,7 +18,7 @@ * * @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. + * @return null|false Returns null if update is unsupported. Returns false if check is too soon. */ function wp_version_check( $extra_stats = array(), $force_check = false ) { if ( defined('WP_INSTALLING') ) @@ -94,7 +94,7 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) { ); $post_body = array( - 'translations' => json_encode( $translations ), + 'translations' => wp_json_encode( $translations ), ); if ( is_array( $extra_stats ) ) @@ -142,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', 'support_email' ), '' ) ); + 'packages', 'current', 'version', 'php_version', 'mysql_version', 'new_bundled', 'partial_version', 'notify_email', 'support_email', 'new_files' ), '' ) ); } $updates = new stdClass(); @@ -180,7 +180,7 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) { * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. - * @return mixed Returns null if update is unsupported. Returns false if check is too soon. + * @return false|null Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_plugins( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version @@ -274,16 +274,16 @@ function wp_update_plugins( $extra_stats = array() ) { $options = array( 'timeout' => $timeout, 'body' => array( - 'plugins' => json_encode( $to_send ), - 'translations' => json_encode( $translations ), - 'locale' => json_encode( $locales ), - 'all' => json_encode( true ), + 'plugins' => wp_json_encode( $to_send ), + 'translations' => wp_json_encode( $translations ), + 'locale' => wp_json_encode( $locales ), + 'all' => wp_json_encode( true ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { - $options['body']['update_stats'] = json_encode( $extra_stats ); + $options['body']['update_stats'] = wp_json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/plugins/update-check/1.1/'; @@ -334,7 +334,7 @@ function wp_update_plugins( $extra_stats = array() ) { * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. - * @return mixed Returns null if update is unsupported. Returns false if check is too soon. + * @return false|null Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_themes( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version @@ -437,15 +437,15 @@ function wp_update_themes( $extra_stats = array() ) { $options = array( 'timeout' => $timeout, 'body' => array( - 'themes' => json_encode( $request ), - 'translations' => json_encode( $translations ), - 'locale' => json_encode( $locales ), + 'themes' => wp_json_encode( $request ), + 'translations' => wp_json_encode( $translations ), + 'locale' => wp_json_encode( $locales ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { - $options['body']['update_stats'] = json_encode( $extra_stats ); + $options['body']['update_stats'] = wp_json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/themes/update-check/1.1/'; @@ -648,8 +648,25 @@ function wp_schedule_update_checks() { } } -if ( ( ! is_main_site() && ! is_network_admin() ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) +/** + * Clear existing update caches for plugins, themes, and core. + * + * @since 4.1.0 + */ +function wp_clean_update_cache() { + if ( function_exists( 'wp_clean_plugins_cache' ) ) { + wp_clean_plugins_cache(); + } else { + delete_site_transient( 'update_plugins' ); + } + wp_clean_plugins_cache(); + wp_clean_themes_cache(); + delete_site_transient( 'update_core' ); +} + +if ( ( ! is_main_site() && ! is_network_admin() ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) { return; +} add_action( 'admin_init', '_maybe_update_core' ); add_action( 'wp_version_check', 'wp_version_check' ); @@ -669,6 +686,8 @@ add_action( 'admin_init', '_maybe_update_themes' ); add_action( 'wp_update_themes', 'wp_update_themes' ); add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 ); +add_action( 'update_option_WPLANG', 'wp_clean_update_cache' , 10, 0 ); + add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' ); add_action('init', 'wp_schedule_update_checks');