WP_Site_Health::get_test_background_updates(): array

In this article

Tests if WordPress can run automated background updates.

Description

Background updates in WordPress are primarily used for minor releases and security updates.
It’s important to either have these working, or be aware that they are intentionally disabled for whatever reason.

Return

array The test results.

Source

public function get_test_background_updates() {
	$result = array(
		'label'       => __( 'Background updates are working' ),
		'status'      => 'good',
		'badge'       => array(
			'label' => __( 'Security' ),
			'color' => 'blue',
		),
		'description' => sprintf(
			'<p>%s</p>',
			__( 'Background updates ensure that WordPress can auto-update if a security update is released for the version you are currently using.' )
		),
		'actions'     => '',
		'test'        => 'background_updates',
	);

	if ( ! class_exists( 'WP_Site_Health_Auto_Updates' ) ) {
		require_once ABSPATH . 'wp-admin/includes/class-wp-site-health-auto-updates.php';
	}

	/*
	 * Run the auto-update tests in a separate class,
	 * as there are many considerations to be made.
	 */
	$automatic_updates = new WP_Site_Health_Auto_Updates();
	$tests             = $automatic_updates->run_tests();

	$output = '<ul>';

	foreach ( $tests as $test ) {
		/* translators: Hidden accessibility text. */
		$severity_string = __( 'Passed' );

		if ( 'fail' === $test->severity ) {
			$result['label'] = __( 'Background updates are not working as expected' );

			$result['status'] = 'critical';

			/* translators: Hidden accessibility text. */
			$severity_string = __( 'Error' );
		}

		if ( 'warning' === $test->severity && 'good' === $result['status'] ) {
			$result['label'] = __( 'Background updates may not be working properly' );

			$result['status'] = 'recommended';

			/* translators: Hidden accessibility text. */
			$severity_string = __( 'Warning' );
		}

		$output .= sprintf(
			'<li><span class="dashicons %s"><span class="screen-reader-text">%s</span></span> %s</li>',
			esc_attr( $test->severity ),
			$severity_string,
			$test->description
		);
	}

	$output .= '</ul>';

	if ( 'good' !== $result['status'] ) {
		$result['description'] .= $output;
	}

	return $result;
}

Changelog

VersionDescription
5.2.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.