Display all cross-sell items in the cart in WooCommerce on child sites.
Snippet Type
Execute on Child Sites
Snippet
function filter_woocommerce_cart_crosssell_ids( $cross_sells, $cart ) {
// Initialize
$cross_sells_ids_in_cart = array();
// Loop through cart items
foreach ( $cart->get_cart() as $cart_item_key => $values ) {
if ( $values['quantity'] > 0 ) {
// Merge one or more arrays
$cross_sells_ids_in_cart = array_merge( $values['data']->get_cross_sell_ids(), $cross_sells_ids_in_cart );
}
}
// Cleans up an array, comma- or space-separated list of IDs
$cross_sells = wp_parse_id_list( $cross_sells_ids_in_cart );
return $cross_sells;
}
add_filter( 'woocommerce_cart_crosssell_ids', 'filter_woocommerce_cart_crosssell_ids', 10, 2 );