主题function.php中的Woocommerce get_cart获取错误消息" get_cart()on null"

时间:2018-04-02 03:20:15

标签: wordpress woocommerce

Bellow是我用来从购物车中获取产品的代码

global $woocommerce;
$items = WC()->cart->get_cart();

我在主题文件夹中的functions.php中有这个代码。

问题是每次运行此代码时,我总是会收到错误消息

  

"致命错误:在null"

上调用成员函数get_cart()

我错过了什么?

2 个答案:

答案 0 :(得分:0)

你可以这样使用

global $woocommerce;
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values) 
{ 
    $_product =  wc_get_product( $values['data']->get_id()); 
    echo "<b>".$_product->get_title().'</b>  <br> Quantity: '.$values['quantity'].'<br>'; 
    $price = get_post_meta($values['product_id'] , '_price', true);
    echo "  Price: ".$price."<br>";
} 

答案 1 :(得分:0)

您的代码有效,但是您可能是从后端或没有购物车的地方调用它的。您可能希望处理订单中的订单商品?

// Get an instance of the WC_Order object
$order = wc_get_order($order_id);

// Iterating through each WC_Order_Item_Product objects
foreach ($order->get_items() as $item_key => $item_values):

## Using WC_Order_Item methods ##

// Item ID is directly accessible from the $item_key in the foreach loop or
$item_id = $item_values->get_id();

## Using WC_Order_Item_Product methods ##

$item_name = $item_values->get_name(); // Name of the product
$item_type = $item_values->get_type(); // Type of the order item ("line_item")

endforeach;