ACF

Updater::requestpublicACF 5.5.10

Makes a request to the ACF connect server.

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

Хуков нет.

Возвращает

(Массив|Строку|WP_Error).

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

$Updater = new Updater();
$Updater->request( $endpoint, $body );
$endpoint(строка)
The API endpoint.
По умолчанию: ''
$body(массив)
The body to post.
По умолчанию: null

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

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

Код Updater::request() ACF 6.4.2

public function request( $endpoint = '', $body = null ) {

	$site_url = acf_get_home_url();
	if ( empty( $site_url ) || ! is_string( $site_url ) ) {
		$site_url = '';
	}

	$headers = array(
		'X-ACF-Version' => ACF_VERSION,
		'X-ACF-URL'     => $site_url,
	);

	$url = "https://connect.advancedcustomfields.com/$endpoint";

	// Staging environment.
	if ( defined( 'ACF_DEV_API' ) && ACF_DEV_API ) {
		$url = trailingslashit( ACF_DEV_API ) . $endpoint;
		acf_log( $url, $body );
	}

	// Determine URL.
	if ( acf_is_pro() ) {
		$license_key = acf_pro_get_license_key();
		if ( empty( $license_key ) || ! is_string( $license_key ) ) {
			$license_key = '';
		}
		$headers['X-ACF-License'] = $license_key;
		$headers['X-ACF-Plugin']  = 'pro';
	} else {
		$headers['X-ACF-Plugin'] = 'acf';
	}

	// Make request.
	$raw_response = wp_remote_post(
		$url,
		array(
			'timeout' => 20,
			'body'    => $body,
			'headers' => $headers,
		)
	);

	// Handle response error.
	if ( is_wp_error( $raw_response ) ) {
		return $raw_response;

		// Handle http error.
	} elseif ( wp_remote_retrieve_response_code( $raw_response ) !== 200 ) {
		return new WP_Error( 'server_error', wp_remote_retrieve_response_message( $raw_response ) );
	}

	// Decode JSON response.
	$json = json_decode( wp_remote_retrieve_body( $raw_response ), true );

	// Allow non json value.
	if ( $json === null ) {
		return wp_remote_retrieve_body( $raw_response );
	}

	return $json;
}