Woocommerce从订单商品ID获取订单商品元数据

时间:2019-07-18 17:42:31

标签: php wordpress woocommerce crud orders

我需要使用订单商品ID而不是订单ID获取订单商品元数据。

这是我尝试过的方法,显然不起作用。

<?php 
$offerNumber = 1234;
echo $offerNumber .'<br/>'; 
$custom_field = wc_get_order_item_meta( $offerNumber, true );

foreach( $custom_field as $key => $value ){
echo '<p>key: '.$key.' | value: '.$value.'</p>';
} ?>

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  

有关信息,函数wc_get_order_item_meta()具有3个参数(前两个是必需的),而第二个参数(元键)在您的代码…所以这行不通,不方便。

自WooCommerce 3起,订单项是受保护的对象,您需要使用其他内容。

1)您将首先从订单ID 获取WC_Order对象(如果没有),例如:

$order = wc_get_order( $order_id );

2)然后,您将可以使用商品ID 获取WC_Order_Item对象,例如:

$item = $order->get_item( $item_id );

3)现在,您可以使用WC_Order_Item get_formatted_meta_data()方法来获取不受保护的对象数组中的所有元数据:

$meta_data = $item->get_formatted_meta_data('_', true);

// Raw output (testing)
echo '<pre>'; var_dump($meta_data); echo '</pre>';

有关更多信息,请参见: