Automattic\WooCommerce\Internal\RestApi\Routes\V4\Settings\Emails\Schema

EmailsSettingsSchema::get_item_responsepublicWC 1.0

Get the item response for a single email.

Method of the class: EmailsSettingsSchema{}

No Hooks.

Returns

Array. The item response.

Usage

$EmailsSettingsSchema = new EmailsSettingsSchema();
$EmailsSettingsSchema->get_item_response( $email, $request, $include_fields ): array;
$email(WC_Email) (required)
Email instance.
$request(WP_REST_Request) (required)
Request object.
$include_fields(array)
Fields to include in the response.
Default: array()

EmailsSettingsSchema::get_item_response() code WC 10.4.3

public function get_item_response( $email, WP_REST_Request $request, array $include_fields = array() ): array {
	// Get template post ID.
	$email_post_manager = WCTransactionalEmailPostsManager::get_instance();
	$post_id            = $email_post_manager->get_email_template_post_id( $email->id ?? '' );
	// Convert false to null, ensure int otherwise.
	$post_id = $post_id ? (int) $post_id : null;

	$link = '';
	if ( $post_id ) {
		$permalink = get_permalink( $post_id );
		$link      = is_string( $permalink ) ? $permalink : '';
	}

	$email->init_form_fields();
	$response = array(
		'id'                => $email->id ?? '',
		'title'             => $email->title ?? '',
		'description'       => $email->description ?? '',
		'post_id'           => $post_id,
		'link'              => $link,
		'email_group'       => $email->email_group ?? '',
		'email_group_title' => method_exists( $email, 'get_email_group_title' ) ? $email->get_email_group_title() : '',
		'is_customer_email' => method_exists( $email, 'is_customer_email' ) ? $email->is_customer_email() : false,
		'is_manual'         => method_exists( $email, 'is_manual' ) ? $email->is_manual() : false,
		'values'            => $this->get_values( $email ),
		'groups'            => $this->get_groups( $email ),
	);

	if ( ! empty( $include_fields ) ) {
		$response = array_intersect_key( $response, array_flip( $include_fields ) );
	}

	return $response;
}