Automattic\WooCommerce\EmailEditor\Integrations\WooCommerce\Renderer\Blocks
Product_Collection::get_upsell_product_ids
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() 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 );
}