WP_REST_Server::envelope_response()publicWP 4.4.0

Wraps the response in an envelope.

The enveloping technique is used to work around browser/client compatibility issues. Essentially, it converts the full HTTP response to data instead.

Method of the class: WP_REST_Server{}

Hooks from the method

Return

WP_REST_Response. New response with wrapped data

Usage

$WP_REST_Server = new WP_REST_Server();
$WP_REST_Server->envelope_response( $response, $embed );
$response(WP_REST_Response) (required)
Response object.
$embed(true|false|string[]) (required)
Whether to embed all links, a filtered list of link relations, or no links.

Changelog

Since 4.4.0 Introduced.
Since 6.0.0 The $embed parameter can now contain a list of link relations to include.

WP_REST_Server::envelope_response() code WP 6.4.3

public function envelope_response( $response, $embed ) {
	$envelope = array(
		'body'    => $this->response_to_data( $response, $embed ),
		'status'  => $response->get_status(),
		'headers' => $response->get_headers(),
	);

	/**
	 * Filters the enveloped form of a REST API response.
	 *
	 * @since 4.4.0
	 *
	 * @param array            $envelope {
	 *     Envelope data.
	 *
	 *     @type array $body    Response data.
	 *     @type int   $status  The 3-digit HTTP status code.
	 *     @type array $headers Map of header name to header value.
	 * }
	 * @param WP_REST_Response $response Original response data.
	 */
	$envelope = apply_filters( 'rest_envelope_response', $envelope, $response );

	// Ensure it's still a response and return.
	return rest_ensure_response( $envelope );
}