From ca37df802732a8a13ed0f4b41d06e8ce599e2522 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Sat, 8 Feb 2020 20:08:31 +0000 Subject: [PATCH] Site Health: Only get MySQL server information in tests where it's actually needed. This resolves an issue with plugins like HyperDB, which doesn't have a database connection until a query is made. Props xkon, Otto42, Clorith. See #47606. git-svn-id: https://develop.svn.wordpress.org/trunk@47215 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/includes/class-wp-site-health.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/wp-admin/includes/class-wp-site-health.php b/src/wp-admin/includes/class-wp-site-health.php index bbf38dce62..b337d94dae 100644 --- a/src/wp-admin/includes/class-wp-site-health.php +++ b/src/wp-admin/includes/class-wp-site-health.php @@ -33,8 +33,6 @@ class WP_Site_Health { public function __construct() { $this->maybe_create_scheduled_event(); - $this->prepare_sql_data(); - $this->timeout_late_cron = 0; $this->timeout_missed_cron = - 5 * MINUTE_IN_SECONDS; @@ -1095,6 +1093,10 @@ class WP_Site_Health { * @return array The test results. */ public function get_test_sql_server() { + if ( ! $this->mysql_server_version ) { + $this->prepare_sql_data(); + } + $result = array( 'label' => __( 'SQL server is up to date' ), 'status' => 'good', @@ -1182,6 +1184,10 @@ class WP_Site_Health { public function get_test_utf8mb4_support() { global $wpdb; + if ( ! $this->mysql_server_version ) { + $this->prepare_sql_data(); + } + $result = array( 'label' => __( 'UTF8MB4 is supported' ), 'status' => 'good',