简体   繁体   中英

Output related products on Woocommerce Cart Page

I'm looking to output related products on my woocommerce cart page.

The function woocommerce_related_products() works perfectly when viewing a single product.

But when on shopping-cart.php, using this function returns an error:

Fatal error: Call to a member function get_related() on a non-object in /woocommerce/single-product/related.php

I tried including the function within the product loop:

foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {

    $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
    $product_id   = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );

    if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters('woocommerce_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
        woocommerce_related_products();
    }
}

This produced the same error.

Is it possible to do this where there are several products currently in question? I would happily pick a random product from the cart and output suggestions based on that.

The problem is that the woocommerce_related_products() is supposed to be used in a loop (that's a WordPress-specific term). That function includes /woocommerce/single-product/related.php template inside which WooCommerce tries to reach global variables $product and $woocommerce_loop that are not defined where you are trying to execute the function.

I would advice you to open file /woocommerce/single-product/related.php , see how related products are retrieved and write some more custom code to get related products displayed outside loop.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM