WP_Site_Health::get_test_http_requests()publicWP 5.2.0

Tests if HTTP requests are blocked.

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.

Метод класса: WP_Site_Health{}

Хуков нет.

Возвращает

Массив. The test results.

Использование

$WP_Site_Health = new WP_Site_Health();
$WP_Site_Health->get_test_http_requests();

Список изменений

С версии 5.2.0 Введена.

Код WP_Site_Health::get_test_http_requests() WP 6.5.2

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;
}