我正在尝试使用以下方法从 Woocommerce 的订单中提取项目元值:
$data = wc_get_order_item_meta( $item, '_tmcartepo_data', true );
但是,我找不到将 order_item_id 作为第一个参数的方法(使用 get_items)
global $woocommerce, $post, $wpdb;
$order = new WC_Order($post->ID);
$items = $order->get_items();
foreach ( $items as $item ) {
$item_id = $item['order_item_id']; //???
$data = wc_get_order_item_meta( $item_id, '_tmcartepo_data', true );
$a = $data[0]['value'];
$b = $data[1]['value'];
echo $a;
echo $b;
}
我的意思是这个订单 item_id (1 和 2)
我该怎么做?
谢谢。
原文由 camelot 发布,翻译遵循 CC BY-SA 4.0 许可协议
所以可能有2种情况:
1)获取产品元数据(订单项元数据中未设置):
您需要在 foreach 循环中获取
WC_Order
的产品 ID 并获取该产品的一些元数据,您将使用get_post_meta()
函数 (但不是wc_get_order_item_meta()
) .所以这是你的代码:
2)获取订单商品元数据(自定义字段值):
如果自定义字段数据是一个数组,您可以在 foreach 循环中访问数据:
所有代码都经过测试并且可以工作。
订单数据相关参考: