Display all cross-sell items in the cart in WooCommerce

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 );

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.