在Woocommerce购物车页面上输出相关产品


Output related products on Woocommerce Cart Page

我希望在我的woocommerce购物车页面上输出相关产品。

功能woocommerce_related_products()在查看单个产品时工作完美。

但是当使用shopping-cart.php时,使用这个函数会返回一个错误:

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

我尝试在产品循环中包含该函数:

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

产生相同的错误。

是否有可能在目前有几个产品存在问题的情况下这样做?我很乐意从购物车中随机挑选一个产品,并据此输出建议。

问题是woocommerce_related_products()应该在循环中使用(这是wordpress特定的术语)。该函数包括/woocommerce/single-product/related.php模板,WooCommerce试图达到全局变量$product$woocommerce_loop,这些变量未定义,您试图执行该函数。

我建议您打开文件/woocommerce/single-product/related.php,查看相关产品是如何检索的,并编写更多自定义代码以在循环外显示相关产品