Code is Poetry.

WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.



git-svn-id: https://develop.svn.wordpress.org/trunk@42343 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Gary Pendergast
2017-11-30 23:09:33 +00:00
parent ec6a089f98
commit 8f95800d52
1103 changed files with 105978 additions and 78184 deletions
+152 -97
View File
@@ -31,24 +31,26 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) {
include( ABSPATH . WPINC . '/version.php' );
$php_version = phpversion();
$current = get_site_transient( 'update_core' );
$current = get_site_transient( 'update_core' );
$translations = wp_get_installed_translations( 'core' );
// Invalidate the transient when $wp_version changes
if ( is_object( $current ) && $wp_version != $current->version_checked )
if ( is_object( $current ) && $wp_version != $current->version_checked ) {
$current = false;
}
if ( ! is_object($current) ) {
$current = new stdClass;
$current->updates = array();
if ( ! is_object( $current ) ) {
$current = new stdClass;
$current->updates = array();
$current->version_checked = $wp_version;
}
if ( ! empty( $extra_stats ) )
if ( ! empty( $extra_stats ) ) {
$force_check = true;
}
// Wait 60 seconds between multiple version check requests
$timeout = 60;
$timeout = 60;
$time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked );
if ( ! $force_check && $time_not_changed ) {
return;
@@ -67,22 +69,23 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) {
$current->last_checked = time();
set_site_transient( 'update_core', $current );
if ( method_exists( $wpdb, 'db_version' ) )
$mysql_version = preg_replace('/[^0-9.].*/', '', $wpdb->db_version());
else
if ( method_exists( $wpdb, 'db_version' ) ) {
$mysql_version = preg_replace( '/[^0-9.].*/', '', $wpdb->db_version() );
} else {
$mysql_version = 'N/A';
}
if ( is_multisite() ) {
$user_count = get_user_count();
$num_blogs = get_blog_count();
$wp_install = network_site_url();
$user_count = get_user_count();
$num_blogs = get_blog_count();
$wp_install = network_site_url();
$multisite_enabled = 1;
} else {
$user_count = count_users();
$user_count = $user_count['total_users'];
$user_count = count_users();
$user_count = $user_count['total_users'];
$multisite_enabled = 0;
$num_blogs = 1;
$wp_install = home_url( '/' );
$num_blogs = 1;
$wp_install = home_url( '/' );
}
$query = array(
@@ -106,7 +109,7 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) {
* @since 4.9.0
*
* @param array $query {
* Version check query arguments.
* Version check query arguments.
*
* @type string $version WordPress version number.
* @type string $php PHP version number.
@@ -125,23 +128,25 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) {
'translations' => wp_json_encode( $translations ),
);
if ( is_array( $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, '&' );
if ( $ssl = wp_http_supports( array( 'ssl' ) ) )
if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) {
$url = set_url_scheme( $url, 'https' );
}
$doing_cron = wp_doing_cron();
$options = array(
'timeout' => $doing_cron ? 30 : 3,
'timeout' => $doing_cron ? 30 : 3,
'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ),
'headers' => array(
'headers' => array(
'wp_install' => $wp_install,
'wp_blog' => home_url( '/' )
'wp_blog' => home_url( '/' ),
),
'body' => $post_body,
'body' => $post_body,
);
$response = wp_remote_post( $url, $options );
@@ -172,25 +177,46 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) {
foreach ( $offers as &$offer ) {
foreach ( $offer as $offer_key => $value ) {
if ( 'packages' == $offer_key )
$offer['packages'] = (object) array_intersect_key( array_map( 'esc_url', $offer['packages'] ),
array_fill_keys( array( 'full', 'no_content', 'new_bundled', 'partial', 'rollback' ), '' ) );
elseif ( 'download' == $offer_key )
if ( 'packages' == $offer_key ) {
$offer['packages'] = (object) array_intersect_key(
array_map( 'esc_url', $offer['packages'] ),
array_fill_keys( array( 'full', 'no_content', 'new_bundled', 'partial', 'rollback' ), '' )
);
} elseif ( 'download' == $offer_key ) {
$offer['download'] = esc_url( $value );
else
} else {
$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', 'new_files' ), '' ) );
$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',
'new_files',
), ''
)
);
}
$updates = new stdClass();
$updates->updates = $offers;
$updates->last_checked = time();
$updates = new stdClass();
$updates->updates = $offers;
$updates->last_checked = time();
$updates->version_checked = $wp_version;
if ( isset( $body['translations'] ) )
if ( isset( $body['translations'] ) ) {
$updates->translations = $body['translations'];
}
set_site_transient( 'update_core', $updates );
@@ -229,35 +255,37 @@ function wp_update_plugins( $extra_stats = array() ) {
include( ABSPATH . WPINC . '/version.php' );
// If running blog-side, bail unless we've not checked in the last 12 hours
if ( !function_exists( 'get_plugins' ) )
if ( ! function_exists( 'get_plugins' ) ) {
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
}
$plugins = get_plugins();
$plugins = get_plugins();
$translations = wp_get_installed_translations( 'plugins' );
$active = get_option( 'active_plugins', array() );
$current = get_site_transient( 'update_plugins' );
if ( ! is_object($current) )
if ( ! is_object( $current ) ) {
$current = new stdClass;
}
$new_option = new stdClass;
$new_option = new stdClass;
$new_option->last_checked = time();
$doing_cron = wp_doing_cron();
// Check for update on a different schedule, depending on the page.
switch ( current_filter() ) {
case 'upgrader_process_complete' :
case 'upgrader_process_complete':
$timeout = 0;
break;
case 'load-update-core.php' :
case 'load-update-core.php':
$timeout = MINUTE_IN_SECONDS;
break;
case 'load-plugins.php' :
case 'load-update.php' :
case 'load-plugins.php':
case 'load-update.php':
$timeout = HOUR_IN_SECONDS;
break;
default :
default:
if ( $doing_cron ) {
$timeout = 0;
} else {
@@ -272,13 +300,14 @@ function wp_update_plugins( $extra_stats = array() ) {
foreach ( $plugins as $file => $p ) {
$new_option->checked[ $file ] = $p['Version'];
if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) )
if ( ! isset( $current->checked[ $file ] ) || strval( $current->checked[ $file ] ) !== strval( $p['Version'] ) ) {
$plugin_changed = true;
}
}
if ( isset ( $current->response ) && is_array( $current->response ) ) {
if ( isset( $current->response ) && is_array( $current->response ) ) {
foreach ( $current->response as $plugin_file => $update_details ) {
if ( ! isset($plugins[ $plugin_file ]) ) {
if ( ! isset( $plugins[ $plugin_file ] ) ) {
$plugin_changed = true;
break;
}
@@ -318,14 +347,14 @@ function wp_update_plugins( $extra_stats = array() ) {
}
$options = array(
'timeout' => $timeout,
'body' => array(
'timeout' => $timeout,
'body' => array(
'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 . '; ' . home_url( '/' )
'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ),
);
if ( $extra_stats ) {
@@ -333,8 +362,9 @@ function wp_update_plugins( $extra_stats = array() ) {
}
$url = $http_url = 'http://api.wordpress.org/plugins/update-check/1.1/';
if ( $ssl = wp_http_supports( array( 'ssl' ) ) )
if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) {
$url = set_url_scheme( $url, 'https' );
}
$raw_response = wp_remote_post( $url, $options );
if ( $ssl && is_wp_error( $raw_response ) ) {
@@ -370,14 +400,14 @@ function wp_update_plugins( $extra_stats = array() ) {
unset( $plugin );
if ( is_array( $response ) ) {
$new_option->response = $response['plugins'];
$new_option->response = $response['plugins'];
$new_option->translations = $response['translations'];
// TODO: Perhaps better to store no_update in a separate transient with an expiry?
$new_option->no_update = $response['no_update'];
} else {
$new_option->response = array();
$new_option->response = array();
$new_option->translations = array();
$new_option->no_update = array();
$new_option->no_update = array();
}
set_site_transient( 'update_plugins', $new_option );
@@ -403,11 +433,12 @@ function wp_update_themes( $extra_stats = array() ) {
include( ABSPATH . WPINC . '/version.php' );
$installed_themes = wp_get_themes();
$translations = wp_get_installed_translations( 'themes' );
$translations = wp_get_installed_translations( 'themes' );
$last_update = get_site_transient( 'update_themes' );
if ( ! is_object($last_update) )
if ( ! is_object( $last_update ) ) {
$last_update = new stdClass;
}
$themes = $checked = $request = array();
@@ -415,14 +446,14 @@ function wp_update_themes( $extra_stats = array() ) {
$request['active'] = get_option( 'stylesheet' );
foreach ( $installed_themes as $theme ) {
$checked[ $theme->get_stylesheet() ] = $theme->get('Version');
$checked[ $theme->get_stylesheet() ] = $theme->get( 'Version' );
$themes[ $theme->get_stylesheet() ] = array(
'Name' => $theme->get('Name'),
'Title' => $theme->get('Name'),
'Version' => $theme->get('Version'),
'Author' => $theme->get('Author'),
'Author URI' => $theme->get('AuthorURI'),
'Name' => $theme->get( 'Name' ),
'Title' => $theme->get( 'Name' ),
'Version' => $theme->get( 'Version' ),
'Author' => $theme->get( 'Author' ),
'Author URI' => $theme->get( 'AuthorURI' ),
'Template' => $theme->get_template(),
'Stylesheet' => $theme->get_stylesheet(),
);
@@ -432,17 +463,17 @@ function wp_update_themes( $extra_stats = array() ) {
// Check for update on a different schedule, depending on the page.
switch ( current_filter() ) {
case 'upgrader_process_complete' :
case 'upgrader_process_complete':
$timeout = 0;
break;
case 'load-update-core.php' :
case 'load-update-core.php':
$timeout = MINUTE_IN_SECONDS;
break;
case 'load-themes.php' :
case 'load-update.php' :
case 'load-themes.php':
case 'load-update.php':
$timeout = HOUR_IN_SECONDS;
break;
default :
default:
$timeout = $doing_cron ? 0 : 12 * HOUR_IN_SECONDS;
}
@@ -451,13 +482,14 @@ function wp_update_themes( $extra_stats = array() ) {
if ( $time_not_changed && ! $extra_stats ) {
$theme_changed = false;
foreach ( $checked as $slug => $v ) {
if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) )
if ( ! isset( $last_update->checked[ $slug ] ) || strval( $last_update->checked[ $slug ] ) !== strval( $v ) ) {
$theme_changed = true;
}
}
if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) {
if ( isset( $last_update->response ) && is_array( $last_update->response ) ) {
foreach ( $last_update->response as $slug => $update_details ) {
if ( ! isset($checked[ $slug ]) ) {
if ( ! isset( $checked[ $slug ] ) ) {
$theme_changed = true;
break;
}
@@ -497,13 +529,13 @@ function wp_update_themes( $extra_stats = array() ) {
}
$options = array(
'timeout' => $timeout,
'body' => array(
'timeout' => $timeout,
'body' => array(
'themes' => wp_json_encode( $request ),
'translations' => wp_json_encode( $translations ),
'locale' => wp_json_encode( $locales ),
),
'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' )
'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ),
);
if ( $extra_stats ) {
@@ -511,8 +543,9 @@ function wp_update_themes( $extra_stats = array() ) {
}
$url = $http_url = 'http://api.wordpress.org/themes/update-check/1.1/';
if ( $ssl = wp_http_supports( array( 'ssl' ) ) )
if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) {
$url = set_url_scheme( $url, 'https' );
}
$raw_response = wp_remote_post( $url, $options );
if ( $ssl && is_wp_error( $raw_response ) ) {
@@ -531,9 +564,9 @@ function wp_update_themes( $extra_stats = array() ) {
return;
}
$new_update = new stdClass;
$new_update = new stdClass;
$new_update->last_checked = time();
$new_update->checked = $checked;
$new_update->checked = $checked;
$response = json_decode( wp_remote_retrieve_body( $raw_response ), true );
@@ -566,12 +599,17 @@ function wp_maybe_auto_update() {
* @return array
*/
function wp_get_translation_updates() {
$updates = array();
$transients = array( 'update_core' => 'core', 'update_plugins' => 'plugin', 'update_themes' => 'theme' );
$updates = array();
$transients = array(
'update_core' => 'core',
'update_plugins' => 'plugin',
'update_themes' => 'theme',
);
foreach ( $transients as $transient => $type ) {
$transient = get_site_transient( $transient );
if ( empty( $transient->translations ) )
if ( empty( $transient->translations ) ) {
continue;
}
foreach ( $transient->translations as $translation ) {
$updates[] = (object) $translation;
@@ -588,34 +626,43 @@ function wp_get_translation_updates() {
* @return array
*/
function wp_get_update_data() {
$counts = array( 'plugins' => 0, 'themes' => 0, 'wordpress' => 0, 'translations' => 0 );
$counts = array(
'plugins' => 0,
'themes' => 0,
'wordpress' => 0,
'translations' => 0,
);
if ( $plugins = current_user_can( 'update_plugins' ) ) {
$update_plugins = get_site_transient( 'update_plugins' );
if ( ! empty( $update_plugins->response ) )
if ( ! empty( $update_plugins->response ) ) {
$counts['plugins'] = count( $update_plugins->response );
}
}
if ( $themes = current_user_can( 'update_themes' ) ) {
$update_themes = get_site_transient( 'update_themes' );
if ( ! empty( $update_themes->response ) )
if ( ! empty( $update_themes->response ) ) {
$counts['themes'] = count( $update_themes->response );
}
}
if ( ( $core = current_user_can( 'update_core' ) ) && function_exists( 'get_core_updates' ) ) {
$update_wordpress = get_core_updates( array('dismissed' => false) );
if ( ! empty( $update_wordpress ) && ! in_array( $update_wordpress[0]->response, array('development', 'latest') ) && current_user_can('update_core') )
$update_wordpress = get_core_updates( array( 'dismissed' => false ) );
if ( ! empty( $update_wordpress ) && ! in_array( $update_wordpress[0]->response, array( 'development', 'latest' ) ) && current_user_can( 'update_core' ) ) {
$counts['wordpress'] = 1;
}
}
if ( ( $core || $plugins || $themes ) && wp_get_translation_updates() )
if ( ( $core || $plugins || $themes ) && wp_get_translation_updates() ) {
$counts['translations'] = 1;
}
$counts['total'] = $counts['plugins'] + $counts['themes'] + $counts['wordpress'] + $counts['translations'];
$titles = array();
$titles = array();
if ( $counts['wordpress'] ) {
/* translators: 1: Number of updates available to WordPress */
$titles['wordpress'] = sprintf( __( '%d WordPress Update'), $counts['wordpress'] );
$titles['wordpress'] = sprintf( __( '%d WordPress Update' ), $counts['wordpress'] );
}
if ( $counts['plugins'] ) {
/* translators: 1: Number of updates available to plugins */
@@ -631,7 +678,10 @@ function wp_get_update_data() {
$update_title = $titles ? esc_attr( implode( ', ', $titles ) ) : '';
$update_data = array( 'counts' => $counts, 'title' => $update_title );
$update_data = array(
'counts' => $counts,
'title' => $update_title,
);
/**
* Filters the returned array of update data for plugins, themes, and WordPress core.
*
@@ -680,8 +730,9 @@ function _maybe_update_core() {
*/
function _maybe_update_plugins() {
$current = get_site_transient( 'update_plugins' );
if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) )
if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) {
return;
}
wp_update_plugins();
}
@@ -696,8 +747,9 @@ function _maybe_update_plugins() {
*/
function _maybe_update_themes() {
$current = get_site_transient( 'update_themes' );
if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) )
if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) {
return;
}
wp_update_themes();
}
@@ -707,14 +759,17 @@ function _maybe_update_themes() {
* @since 3.1.0
*/
function wp_schedule_update_checks() {
if ( ! wp_next_scheduled( 'wp_version_check' ) && ! wp_installing() )
wp_schedule_event(time(), 'twicedaily', 'wp_version_check');
if ( ! wp_next_scheduled( 'wp_version_check' ) && ! wp_installing() ) {
wp_schedule_event( time(), 'twicedaily', 'wp_version_check' );
}
if ( ! wp_next_scheduled( 'wp_update_plugins' ) && ! wp_installing() )
wp_schedule_event(time(), 'twicedaily', 'wp_update_plugins');
if ( ! wp_next_scheduled( 'wp_update_plugins' ) && ! wp_installing() ) {
wp_schedule_event( time(), 'twicedaily', 'wp_update_plugins' );
}
if ( ! wp_next_scheduled( 'wp_update_themes' ) && ! wp_installing() )
wp_schedule_event(time(), 'twicedaily', 'wp_update_themes');
if ( ! wp_next_scheduled( 'wp_update_themes' ) && ! wp_installing() ) {
wp_schedule_event( time(), 'twicedaily', 'wp_update_themes' );
}
}
/**
@@ -751,7 +806,7 @@ add_action( 'load-update-core.php', 'wp_update_themes' );
add_action( 'admin_init', '_maybe_update_themes' );
add_action( 'wp_update_themes', 'wp_update_themes' );
add_action( 'update_option_WPLANG', 'wp_clean_update_cache' , 10, 0 );
add_action( 'update_option_WPLANG', 'wp_clean_update_cache', 10, 0 );
add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' );