Menu Close

WooCommerce: Get Product / Order Cross-Sells

default

Getting the list of cross-sells for a WooCommerce product is actually super easy (yes, it’s one line of PHP). But what if you need to “calculate” the list of cross-sells for an entire order, made of different products?

In this short tutorial for developers we’ll see both: how to get the cross-sell IDs for a product, and how to get the entire range of cross-sells based on what’s been purchased in a given order. Enjoy!

This snippets will help you “get” the list of cross-sells that you’ve added in the edit product page.

PHP Snippet 1: Get Product Cross-Sells

/**
 * @snippet       Get Product Cross-Sell IDs
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 7
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

$product->get_cross_sell_ids();

PHP Snippet 2: Get Order Cross-Sells

This is as easy as looping through the order items, adding the cross sell IDs to an array, and remove the duplicates from the final array.

/**
 * @snippet       Get Order Cross-Sell IDs
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 7
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */

$items = $order->get_items();
$cross_sells = array();
foreach ( $items as $item ) {
	$cross_sells = array_merge( $item->get_product()->get_cross_sell_ids(), $cross_sells );
}	
$cross_sells = array_unique( $cross_sells );
View Source
Posted in WooCommerce Tips