Last updated on October 18, 2023

WooCommerce cross-sell and upsell strategies

Don’t know where to add this snippet? Read our guide: How to add code snippets.

Boost sales using cross-sell and upsell tactics in WooCommerce.

One effective strategy for increasing sales in WooCommerce is to implement cross-selling and upselling techniques. Cross-selling involves recommending related products to customers, while upselling involves suggesting higher-priced alternatives. By implementing these strategies, you can encourage customers to purchase additional products or upgrade their purchases, thereby increasing your revenue.

To implement cross-selling in WooCommerce, you can use the woocommerce_cross_sell_display() function. This function displays a set of related products on the cart page, encouraging customers to add more items to their order. Here’s an example of how to use this function:

<?php
function wpsnippets_display_cross_sell() {
    if (is_cart()) {
        woocommerce_cross_sell_display();
    }
}
add_action('woocommerce_cart_collaterals', 'wpsnippets_display_cross_sell');
?>

In this example, we define a custom function wpsnippets_display_cross_sell() that checks if the current page is the cart page using the is_cart() function. If it is, we call the woocommerce_cross_sell_display() function to display the cross-sell products.

To implement upselling in WooCommerce, you can use the woocommerce_upsell_display() function. This function displays a set of higher-priced alternatives on the single product page, enticing customers to consider upgrading their purchase. Here’s an example of how to use this function:

<?php
function wpsnippets_display_upsell() {
    if (is_product()) {
        woocommerce_upsell_display();
    }
}
add_action('woocommerce_after_single_product_summary', 'wpsnippets_display_upsell');
?>

In this example, we define a custom function wpsnippets_display_upsell() that checks if the current page is a single product page using the is_product() function. If it is, we call the woocommerce_upsell_display() function to display the upsell products.

By using these code snippets, you can easily implement cross-selling and upselling strategies in your WooCommerce store, encouraging customers to purchase additional products or upgrade their purchases.

Examples

Example 1: Display Related Products on Single Product Page

This example demonstrates how to display related products on the single product page in WooCommerce. The code uses the woocommerce_after_single_product_summary action hook to add a custom function that retrieves and displays related products.

function wpsnippets_display_related_products() {
    global $product;

    if ( ! $product ) {
        return;
    }

    $related_ids = wc_get_related_products( $product->get_id(), 4 );

    if ( $related_ids ) {
        echo '<h2>' . esc_html__( 'Related Products', 'woocommerce' ) . '</h2>';
        echo '<ul class="products">';

        foreach ( $related_ids as $related_id ) {
            $related_product = wc_get_product( $related_id );

            if ( $related_product ) {
                wc_get_template_part( 'content', 'product' );
            }
        }

        echo '</ul>';
    }
}
add_action( 'woocommerce_after_single_product_summary', 'wpsnippets_display_related_products', 20 );

This code adds a custom function wpsnippets_display_related_products to the woocommerce_after_single_product_summary action hook. It retrieves the related product IDs using the wc_get_related_products function, then loops through each ID to display the related products using the wc_get_template_part function.

Example 2: Display Cross-Sell Products in Cart

This example demonstrates how to display cross-sell products in the WooCommerce cart. The code uses the woocommerce_cart_collaterals action hook to add a custom function that retrieves and displays cross-sell products.

function wpsnippets_display_cross_sell_products() {
    if ( ! is_cart() ) {
        return;
    }

    $cross_sell_ids = get_post_meta( get_the_ID(), '_crosssell_ids', true );

    if ( $cross_sell_ids ) {
        echo '<h2>' . esc_html__( 'You may be interested in', 'woocommerce' ) . '</h2>';
        echo '<ul class="products">';

        foreach ( $cross_sell_ids as $cross_sell_id ) {
            $cross_sell_product = wc_get_product( $cross_sell_id );

            if ( $cross_sell_product ) {
                wc_get_template_part( 'content', 'product' );
            }
        }

        echo '</ul>';
    }
}
add_action( 'woocommerce_cart_collaterals', 'wpsnippets_display_cross_sell_products', 20 );

This code adds a custom function wpsnippets_display_cross_sell_products to the woocommerce_cart_collaterals action hook. It retrieves the cross-sell product IDs using the get_post_meta function, then loops through each ID to display the cross-sell products using the wc_get_template_part function.

Example 3: Display Upsell Products on Single Product Page

This example demonstrates how to display upsell products on the single product page in WooCommerce. The code uses the woocommerce_after_single_product_summary action hook to add a custom function that retrieves and displays upsell products.

function wpsnippets_display_upsell_products() {
    global $product;

    if ( ! $product ) {
        return;
    }

    $upsell_ids = $product->get_upsell_ids();

    if ( $upsell_ids ) {
        echo '<h2>' . esc_html__( 'You may also like', 'woocommerce' ) . '</h2>';
        echo '<ul class="products">';

        foreach ( $upsell_ids as $upsell_id ) {
            $upsell_product = wc_get_product( $upsell_id );

            if ( $upsell_product ) {
                wc_get_template_part( 'content', 'product' );
            }
        }

        echo '</ul>';
    }
}
add_action( 'woocommerce_after_single_product_summary', 'wpsnippets_display_upsell_products', 25 );

This code adds a custom function wpsnippets_display_upsell_products to the woocommerce_after_single_product_summary action hook. It retrieves the upsell product IDs using the $product->get_upsell_ids() method, then loops through each ID to display the upsell products using the wc_get_template_part function.

Last updated on October 18, 2023. Originally posted on December 5, 2023.

Leave a Reply