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

Product_Collection::get_upsell_product_idsprivateWC 1.0

Get upsell product IDs.

Method of the class: Product_Collection{}

No Hooks.

Returns

Array. Array of upsell product IDs.

Usage

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

Product_Collection::get_upsell_product_ids() code WC 10.4.3

private function get_upsell_product_ids( array $parsed_block ): array {
	$product_references = $this->get_product_references_for_collection( $parsed_block );

	if ( empty( $product_references ) ) {
		return array( -1 ); // Return -1 to ensure no products are found.
	}

	$products = array_filter( array_map( 'wc_get_product', $product_references ) );

	if ( empty( $products ) ) {
		return array( -1 );
	}

	$all_upsells = array();
	foreach ( $products as $product ) {
		$all_upsells = array_merge( $all_upsells, $product->get_upsell_ids() );
	}

	// Remove duplicates and product references (don't show what's already in context).
	$unique_upsells = array_unique( $all_upsells );
	$upsells        = array_diff( $unique_upsells, $product_references );

	return ! empty( $upsells ) ? $upsells : array( -1 );
}