Automattic\WooCommerce\Internal\RestApi\Routes\V4\Products

Controller::add_embed_context_to_schema_propertyprivateWC 1.0

Add the embed context to a schema property and its nested properties.

Method of the class: Controller{}

No Hooks.

Returns

Array. Schema property with embed context support.

Usage

// private - for code of main (parent) class only
$result = $this->add_embed_context_to_schema_property( $property_schema ): array;
$property_schema(array) (required)
Schema property.

Controller::add_embed_context_to_schema_property() code WC 11.0.1

private function add_embed_context_to_schema_property( array $property_schema ): array {
	if (
		! empty( $property_schema['context'] ) &&
		is_array( $property_schema['context'] ) &&
		in_array( 'view', $property_schema['context'], true ) &&
		! in_array( 'embed', $property_schema['context'], true )
	) {
		$property_schema['context'][] = 'embed';
	}

	if ( ! empty( $property_schema['properties'] ) && is_array( $property_schema['properties'] ) ) {
		foreach ( $property_schema['properties'] as $property => $nested_property_schema ) {
			if ( ! is_array( $nested_property_schema ) ) {
				continue;
			}

			$property_schema['properties'][ $property ] = $this->add_embed_context_to_schema_property( $nested_property_schema );
		}
	}

	if ( ! empty( $property_schema['items']['properties'] ) && is_array( $property_schema['items']['properties'] ) ) {
		foreach ( $property_schema['items']['properties'] as $property => $nested_property_schema ) {
			if ( ! is_array( $nested_property_schema ) ) {
				continue;
			}

			$property_schema['items']['properties'][ $property ] = $this->add_embed_context_to_schema_property( $nested_property_schema );
		}
	}

	return $property_schema;
}