我希望在我的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();
}
}
这产生了同样的错误。
当目前有几种产品存在问题时,是否可以这样做?我很乐意从购物车中随机挑选一个产品并根据该产品提出建议。
答案 0 :(得分:1)
问题是woocommerce_related_products()
应该在循环中使用(这是一个特定于WordPress的术语)。该函数包含/woocommerce/single-product/related.php
模板,WooCommerce在其中尝试访问未尝试执行函数的全局变量$product
和$woocommerce_loop
。
我建议您打开文件/woocommerce/single-product/related.php
,查看相关产品的检索方式,并编写更多自定义代码,以便在循环外显示相关产品。