WP_Site_Health::get_test_http_requests(): array

In this article

Tests if HTTP requests are blocked.

Description

It’s possible to block all outgoing communication (with the possibility of allowing certain hosts) via the HTTP API. This may create problems for users as many features are running as services these days.

Return

array The test results.

Source

public function get_test_http_requests() {
	$result = array(
		'label'       => __( 'HTTP requests seem to be working as expected' ),
		'status'      => 'good',
		'badge'       => array(
			'label' => __( 'Performance' ),
			'color' => 'blue',
		),
		'description' => sprintf(
			'<p>%s</p>',
			__( 'It is possible for site maintainers to block all, or some, communication to other sites and services. If set up incorrectly, this may prevent plugins and themes from working as intended.' )
		),
		'actions'     => '',
		'test'        => 'http_requests',
	);

	$blocked = false;
	$hosts   = array();

	if ( defined( 'WP_HTTP_BLOCK_EXTERNAL' ) && WP_HTTP_BLOCK_EXTERNAL ) {
		$blocked = true;
	}

	if ( defined( 'WP_ACCESSIBLE_HOSTS' ) ) {
		$hosts = explode( ',', WP_ACCESSIBLE_HOSTS );
	}

	if ( $blocked && 0 === count( $hosts ) ) {
		$result['status'] = 'critical';

		$result['label'] = __( 'HTTP requests are blocked' );

		$result['description'] .= sprintf(
			'<p>%s</p>',
			sprintf(
				/* translators: %s: Name of the constant used. */
				__( 'HTTP requests have been blocked by the %s constant, with no allowed hosts.' ),
				'<code>WP_HTTP_BLOCK_EXTERNAL</code>'
			)
		);
	}

	if ( $blocked && 0 < count( $hosts ) ) {
		$result['status'] = 'recommended';

		$result['label'] = __( 'HTTP requests are partially blocked' );

		$result['description'] .= sprintf(
			'<p>%s</p>',
			sprintf(
				/* translators: 1: Name of the constant used. 2: List of allowed hostnames. */
				__( 'HTTP requests have been blocked by the %1$s constant, with some allowed hosts: %2$s.' ),
				'<code>WP_HTTP_BLOCK_EXTERNAL</code>',
				implode( ',', $hosts )
			)
		);
	}

	return $result;
}

Changelog

VersionDescription
5.2.0Introduced.

User Contributed Notes

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