我需要使用订单商品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>';
} ?>
任何帮助将不胜感激。
答案 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>';
有关更多信息,请参见: