diff -r c7c34916027a -r 177826044cd9 wp/wp-admin/includes/update.php --- a/wp/wp-admin/includes/update.php Mon Oct 14 18:06:33 2019 +0200 +++ b/wp/wp-admin/includes/update.php Mon Oct 14 18:28:13 2019 +0200 @@ -13,10 +13,12 @@ */ function get_preferred_from_update_core() { $updates = get_core_updates(); - if ( ! is_array( $updates ) ) + if ( ! is_array( $updates ) ) { return false; - if ( empty( $updates ) ) + } + if ( empty( $updates ) ) { return (object) array( 'response' => 'latest' ); + } return $updates[0]; } @@ -24,36 +26,45 @@ * Get available core updates. * * @param array $options Set $options['dismissed'] to true to show dismissed upgrades too, - * set $options['available'] to false to skip not-dismissed updates. + * set $options['available'] to false to skip not-dismissed updates. * @return array|false Array of the update objects on success, false on failure. */ function get_core_updates( $options = array() ) { - $options = array_merge( array( 'available' => true, 'dismissed' => false ), $options ); + $options = array_merge( + array( + 'available' => true, + 'dismissed' => false, + ), + $options + ); $dismissed = get_site_option( 'dismissed_update_core' ); - if ( ! is_array( $dismissed ) ) + if ( ! is_array( $dismissed ) ) { $dismissed = array(); + } $from_api = get_site_transient( 'update_core' ); - if ( ! isset( $from_api->updates ) || ! is_array( $from_api->updates ) ) + if ( ! isset( $from_api->updates ) || ! is_array( $from_api->updates ) ) { return false; + } $updates = $from_api->updates; - $result = array(); + $result = array(); foreach ( $updates as $update ) { - if ( $update->response == 'autoupdate' ) + if ( $update->response == 'autoupdate' ) { continue; + } if ( array_key_exists( $update->current . '|' . $update->locale, $dismissed ) ) { if ( $options['dismissed'] ) { $update->dismissed = true; - $result[] = $update; + $result[] = $update; } } else { if ( $options['available'] ) { $update->dismissed = false; - $result[] = $update; + $result[] = $update; } } } @@ -71,22 +82,26 @@ */ function find_core_auto_update() { $updates = get_site_transient( 'update_core' ); - if ( ! $updates || empty( $updates->updates ) ) + if ( ! $updates || empty( $updates->updates ) ) { return false; + } include_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' ); $auto_update = false; - $upgrader = new WP_Automatic_Updater; + $upgrader = new WP_Automatic_Updater; foreach ( $updates->updates as $update ) { - if ( 'autoupdate' != $update->response ) + if ( 'autoupdate' != $update->response ) { continue; + } - if ( ! $upgrader->should_update( 'core', $update, ABSPATH ) ) + if ( ! $upgrader->should_update( 'core', $update, ABSPATH ) ) { continue; + } - if ( ! $auto_update || version_compare( $update->current, $auto_update->current, '>' ) ) + if ( ! $auto_update || version_compare( $update->current, $auto_update->current, '>' ) ) { $auto_update = $update; + } } return $auto_update; } @@ -103,8 +118,9 @@ function get_core_checksums( $version, $locale ) { $url = $http_url = 'http://api.wordpress.org/core/checksums/1.0/?' . http_build_query( compact( 'version', 'locale' ), null, '&' ); - if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) + if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) { $url = set_url_scheme( $url, 'https' ); + } $options = array( 'timeout' => wp_doing_cron() ? 30 : 3, @@ -123,20 +139,21 @@ $response = wp_remote_get( $http_url, $options ); } - if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) + if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) { return false; + } $body = trim( wp_remote_retrieve_body( $response ) ); $body = json_decode( $body, true ); - if ( ! is_array( $body ) || ! isset( $body['checksums'] ) || ! is_array( $body['checksums'] ) ) + if ( ! is_array( $body ) || ! isset( $body['checksums'] ) || ! is_array( $body['checksums'] ) ) { return false; + } return $body['checksums']; } /** - * * @param object $update * @return bool */ @@ -147,24 +164,23 @@ } /** - * * @param string $version * @param string $locale * @return bool */ function undismiss_core_update( $version, $locale ) { $dismissed = get_site_option( 'dismissed_update_core' ); - $key = $version . '|' . $locale; + $key = $version . '|' . $locale; - if ( ! isset( $dismissed[$key] ) ) + if ( ! isset( $dismissed[ $key ] ) ) { return false; + } - unset( $dismissed[$key] ); + unset( $dismissed[ $key ] ); return update_site_option( 'dismissed_update_core', $dismissed ); } /** - * * @param string $version * @param string $locale * @return object|false @@ -172,94 +188,100 @@ function find_core_update( $version, $locale ) { $from_api = get_site_transient( 'update_core' ); - if ( ! isset( $from_api->updates ) || ! is_array( $from_api->updates ) ) + if ( ! isset( $from_api->updates ) || ! is_array( $from_api->updates ) ) { return false; + } $updates = $from_api->updates; foreach ( $updates as $update ) { - if ( $update->current == $version && $update->locale == $locale ) + if ( $update->current == $version && $update->locale == $locale ) { return $update; + } } return false; } /** - * * @param string $msg * @return string */ function core_update_footer( $msg = '' ) { - if ( !current_user_can('update_core') ) + if ( ! current_user_can( 'update_core' ) ) { return sprintf( __( 'Version %s' ), get_bloginfo( 'version', 'display' ) ); + } $cur = get_preferred_from_update_core(); - if ( ! is_object( $cur ) ) + if ( ! is_object( $cur ) ) { $cur = new stdClass; + } - if ( ! isset( $cur->current ) ) + if ( ! isset( $cur->current ) ) { $cur->current = ''; + } - if ( ! isset( $cur->url ) ) + if ( ! isset( $cur->url ) ) { $cur->url = ''; + } - if ( ! isset( $cur->response ) ) + if ( ! isset( $cur->response ) ) { $cur->response = ''; + } switch ( $cur->response ) { - case 'development' : - /* translators: 1: WordPress version number, 2: WordPress updates admin screen URL */ - return sprintf( __( 'You are using a development version (%1$s). Cool! Please stay updated.' ), get_bloginfo( 'version', 'display' ), network_admin_url( 'update-core.php' ) ); + case 'development': + /* translators: 1: WordPress version number, 2: WordPress updates admin screen URL */ + return sprintf( __( 'You are using a development version (%1$s). Cool! Please stay updated.' ), get_bloginfo( 'version', 'display' ), network_admin_url( 'update-core.php' ) ); - case 'upgrade' : - return '' . sprintf( __( 'Get Version %s' ), $cur->current ) . ''; + case 'upgrade': + return '' . sprintf( __( 'Get Version %s' ), $cur->current ) . ''; - case 'latest' : - default : - return sprintf( __( 'Version %s' ), get_bloginfo( 'version', 'display' ) ); + case 'latest': + default: + return sprintf( __( 'Version %s' ), get_bloginfo( 'version', 'display' ) ); } } /** - * * @global string $pagenow * @return false|void */ function update_nag() { - if ( is_multisite() && !current_user_can('update_core') ) + if ( is_multisite() && ! current_user_can( 'update_core' ) ) { return false; + } global $pagenow; - if ( 'update-core.php' == $pagenow ) + if ( 'update-core.php' == $pagenow ) { return; + } $cur = get_preferred_from_update_core(); - if ( ! isset( $cur->response ) || $cur->response != 'upgrade' ) + if ( ! isset( $cur->response ) || $cur->response != 'upgrade' ) { return false; + } + + $version_url = sprintf( + /* translators: %s: WordPress version */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( $cur->current ) + ); if ( current_user_can( 'update_core' ) ) { $msg = sprintf( - /* translators: 1: Codex URL to release notes, 2: new WordPress version, 3: URL to network admin, 4: accessibility text */ + /* translators: 1: URL to WordPress release notes, 2: new WordPress version, 3: URL to network admin, 4: accessibility text */ __( 'WordPress %2$s is available! Please update now.' ), - sprintf( - /* translators: %s: WordPress version */ - esc_url( __( 'https://codex.wordpress.org/Version_%s' ) ), - $cur->current - ), + $version_url, $cur->current, network_admin_url( 'update-core.php' ), esc_attr__( 'Please update WordPress now' ) ); } else { $msg = sprintf( - /* translators: 1: Codex URL to release notes, 2: new WordPress version */ + /* translators: 1: URL to WordPress release notes, 2: new WordPress version */ __( 'WordPress %2$s is available! Please notify the site administrator.' ), - sprintf( - /* translators: %s: WordPress version */ - esc_url( __( 'https://codex.wordpress.org/Version_%s' ) ), - $cur->current - ), + $version_url, $cur->current ); } @@ -275,11 +297,12 @@ $msg = ''; - if ( current_user_can('update_core') ) { + if ( current_user_can( 'update_core' ) ) { $cur = get_preferred_from_update_core(); - if ( isset( $cur->response ) && $cur->response == 'upgrade' ) + if ( isset( $cur->response ) && $cur->response == 'upgrade' ) { $msg .= '' . sprintf( __( 'Update to %s' ), $cur->current ? $cur->current : __( 'Latest' ) ) . ' '; + } } /* translators: 1: version number, 2: theme name */ @@ -307,12 +330,12 @@ * @return array */ function get_plugin_updates() { - $all_plugins = get_plugins(); + $all_plugins = get_plugins(); $upgrade_plugins = array(); - $current = get_site_transient( 'update_plugins' ); - foreach ( (array)$all_plugins as $plugin_file => $plugin_data) { + $current = get_site_transient( 'update_plugins' ); + foreach ( (array) $all_plugins as $plugin_file => $plugin_data ) { if ( isset( $current->response[ $plugin_file ] ) ) { - $upgrade_plugins[ $plugin_file ] = (object) $plugin_data; + $upgrade_plugins[ $plugin_file ] = (object) $plugin_data; $upgrade_plugins[ $plugin_file ]->update = $current->response[ $plugin_file ]; } } @@ -324,11 +347,12 @@ * @since 2.9.0 */ function wp_plugin_update_rows() { - if ( !current_user_can('update_plugins' ) ) + if ( ! current_user_can( 'update_plugins' ) ) { return; + } $plugins = get_site_transient( 'update_plugins' ); - if ( isset($plugins->response) && is_array($plugins->response) ) { + if ( isset( $plugins->response ) && is_array( $plugins->response ) ) { $plugins = array_keys( $plugins->response ); foreach ( $plugins as $plugin_file ) { add_action( "after_plugin_row_$plugin_file", 'wp_plugin_update_row', 10, 2 ); @@ -352,7 +376,10 @@ $response = $current->response[ $file ]; $plugins_allowedtags = array( - 'a' => array( 'href' => array(), 'title' => array() ), + 'a' => array( + 'href' => array(), + 'title' => array(), + ), 'abbr' => array( 'title' => array() ), 'acronym' => array( 'title' => array() ), 'code' => array(), @@ -360,8 +387,8 @@ 'strong' => array(), ); - $plugin_name = wp_kses( $plugin_data['Name'], $plugins_allowedtags ); - $details_url = self_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $response->slug . '§ion=changelog&TB_iframe=true&width=600&height=800' ); + $plugin_name = wp_kses( $plugin_data['Name'], $plugins_allowedtags ); + $details_url = self_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $response->slug . '§ion=changelog&TB_iframe=true&width=600&height=800' ); /** @var WP_Plugins_List_Table $wp_list_table */ $wp_list_table = _get_list_table( 'WP_Plugins_List_Table' ); @@ -373,46 +400,74 @@ $active_class = is_plugin_active( $file ) ? ' active' : ''; } - echo '