Site Health: Add tests to check for potential issues with plugin and theme auto-updates.
Fixes #50662. Props desrosj, audrasjb. git-svn-id: https://develop.svn.wordpress.org/trunk@48548 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
ffef4daf88
commit
5e14b1b5fd
@ -1734,6 +1734,45 @@ class WP_Site_Health {
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if plugin and theme auto-updates appear to be configured correctly.
|
||||
*
|
||||
* @since 5.5.0
|
||||
*
|
||||
* @return array The test results.
|
||||
*/
|
||||
public function get_test_plugin_theme_auto_updates() {
|
||||
$result = array(
|
||||
'label' => __( 'Plugin and Theme auto-updates appear to be configured correctly' ),
|
||||
'status' => 'good',
|
||||
'badge' => array(
|
||||
'label' => __( 'Security' ),
|
||||
'color' => 'blue',
|
||||
),
|
||||
'description' => sprintf(
|
||||
'<p>%s</p>',
|
||||
__( 'Plugin and theme auto updates ensure that the latest versions are always installed.' )
|
||||
),
|
||||
'actions' => '',
|
||||
'test' => 'plugin_theme_auto_updates',
|
||||
);
|
||||
|
||||
$check_plugin_theme_updates = $this->detect_plugin_theme_auto_update_issues();
|
||||
|
||||
$result['status'] = $check_plugin_theme_updates->status;
|
||||
|
||||
if ( 'good' !== $check_plugin_theme_updates->status ) {
|
||||
$result['label'] = __( 'Your site may have problems auto-updating plugins and themes' );
|
||||
|
||||
$result['description'] .= sprintf(
|
||||
'<p>%s</p>',
|
||||
$check_plugin_theme_updates->message
|
||||
);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if loopbacks work as expected.
|
||||
*
|
||||
@ -2287,6 +2326,55 @@ class WP_Site_Health {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check for potential issues with plugin and theme auto-updates.
|
||||
*
|
||||
* Though there is no way to 100% determine if plugin and theme auto-updates are configured
|
||||
* correctly, a few educated guesses could be made to flag any conditions that would
|
||||
* potentially cause unexpected behaviors.
|
||||
*
|
||||
* @since 5.5.0
|
||||
*
|
||||
* @return object The test results.
|
||||
*/
|
||||
function detect_plugin_theme_auto_update_issues() {
|
||||
$test_plugins_enabled = apply_filters( 'auto_update_plugin', true );
|
||||
$test_themes_enabled = apply_filters( 'auto_update_theme', true );
|
||||
$ui_enabled_for_plugins = wp_is_auto_update_enabled_for_type( 'plugin' );
|
||||
$ui_enabled_for_themes = wp_is_auto_update_enabled_for_type( 'theme' );
|
||||
$plugin_filter_present = has_filter( 'auto_update_plugin' );
|
||||
$theme_filter_present = has_filter( 'auto_update_theme' );
|
||||
|
||||
if ( ( ! $test_plugins_enabled && $ui_enabled_for_plugins ) || ( $test_themes_enabled && $ui_enabled_for_themes ) ) {
|
||||
return (object) array(
|
||||
'status' => 'critical',
|
||||
'message' => __( 'Auto-updates for plugins and/or themes appear to be disabled, but settings are still set to be displayed. This could cause auto-updates to not work as expected.' ),
|
||||
);
|
||||
}
|
||||
|
||||
if ( ( ! $test_plugins_enabled && $plugin_filter_present ) && ( ! $test_themes_enabled && $theme_filter_present ) ) {
|
||||
return (object) array(
|
||||
'status' => 'recommended',
|
||||
'message' => __( 'Auto-updates for plugins and themes appear to be disabled. This will prevent your sites from receiving new versions automatically when available.' ),
|
||||
);
|
||||
} elseif ( ! $test_plugins_enabled && $plugin_filter_present ) {
|
||||
return (object) array(
|
||||
'status' => 'recommended',
|
||||
'message' => __( 'Auto-updates for plugins appear to be disabled. This will prevent your sites from receiving new versions automatically when available.' ),
|
||||
);
|
||||
} elseif ( ! $test_themes_enabled && $theme_filter_present ) {
|
||||
return (object) array(
|
||||
'status' => 'recommended',
|
||||
'message' => __( 'Auto-updates for themes appear to be disabled. This will prevent your sites from receiving new versions automatically when available.' ),
|
||||
);
|
||||
}
|
||||
|
||||
return (object) array(
|
||||
'status' => 'good',
|
||||
'message' => __( 'There appears to be no issues with plugin and theme auto-updates.' ),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Run a loopback test on our site.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user