Automattic\WooCommerce\EmailEditor\Integrations\WooCommerce\Renderer\Blocks

Product_Collection::get_product_references_for_collectionprivateWC 1.0

Get product references for collections (handles different contexts).

Method of the class: Product_Collection{}

No Hooks.

Returns

Array. Array of product IDs or empty array.

Usage

// private - for code of main (parent) class only
$result = $this->get_product_references_for_collection( $parsed_block ): array;
$parsed_block(array) (required)
Parsed block data.

Product_Collection::get_product_references_for_collection() code WC 10.5.0

private function get_product_references_for_collection( array $parsed_block ): array {
	$query_attrs        = $parsed_block['attrs']['query'] ?? array();
	$product_references = array();

	// First try to get from productReference in query attributes.
	if ( ! empty( $query_attrs['productReference'] ) ) {
		$product_references = array( (int) $query_attrs['productReference'] );
	}

	// If no product reference found, try to get from global context.
	if ( empty( $product_references ) ) {
		global $product;
		if ( $product && is_a( $product, 'WC_Product' ) ) {
			$product_references = array( $product->get_id() );
		}
	}

	// In email context, we might need additional context sources.
	// This could be extended based on email type (order confirmation, etc.).

	return $product_references;
}