diff --git a/wp-admin/includes/update.php b/wp-admin/includes/update.php index 1debecdc53..83af44729a 100644 --- a/wp-admin/includes/update.php +++ b/wp-admin/includes/update.php @@ -34,9 +34,13 @@ function get_core_updates( $options = array() ) { $dismissed = get_option( 'dismissed_update_core' ); if ( !is_array( $dismissed ) ) $dismissed = array(); $from_api = get_option( 'update_core' ); - if ( !is_array( $from_api ) ) return false; + if ( empty($from_api) ) + return false; + if ( !is_array( $from_api->updates ) ) return false; + $updates = $from_api->updates; + if ( !is_array( $updates ) ) return false; $result = array(); - foreach($from_api as $update) { + foreach($updates as $update) { if ( array_key_exists( $update->current.'|'.$update->locale, $dismissed ) ) { if ( $options['dismissed'] ) { $update->dismissed = true; @@ -68,8 +72,9 @@ function undismiss_core_update( $version, $locale ) { function find_core_update( $version, $locale ) { $from_api = get_option( 'update_core' ); - if ( !is_array( $from_api ) ) return false; - foreach($from_api as $update) { + if ( !is_array( $from_api->updates ) ) return false; + $updates = $from_api->updates; + foreach($updates as $update) { if ( $update->current == $version && $update->locale == $locale ) return $update; } diff --git a/wp-includes/update.php b/wp-includes/update.php index bf46c61624..a374769704 100644 --- a/wp-includes/update.php +++ b/wp-includes/update.php @@ -77,7 +77,11 @@ function wp_version_check() { $new_options[] = $new_option; } - update_option( 'update_core', $new_options ); + $updates = new stdClass(); + $updates->updates = $new_options; + $updates->last_checked = time(); + $updates->version_checked = $wp_version; + update_option( 'update_core', $updates); } add_action( 'init', 'wp_version_check' );