You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce新HPOS数据库结构中获取订单元数据

WooCommerce HPOS 订单元数据获取解决方案

你遇到的问题核心是元数据存储层级不匹配:

  • 你通过$order->update_meta_data()存储的是订单级别的自定义元数据,直接关联在订单对象本身
  • 而你尝试遍历$order->get_items()去获取,是在访问订单项(商品、运费等条目)的元数据,这两个层级完全独立,所以返回null

正确的获取代码

直接使用订单对象的get_meta()方法即可,和存储操作对应:

$order = wc_get_order( $post_id );
// 获取订单级自定义元数据,第二个参数true表示返回单值而非数组
$tracking_value = $order->get_meta( '_tracking', true );
echo $tracking_value; // 输出:12345678

补充说明

如果你的需求是给订单项添加元数据(比如给某个商品条目单独加跟踪号),才需要操作订单项对象,示例如下:

// 存储订单项元数据
$order = wc_get_order( $post_id );
foreach ( $order->get_items() as $item_id => $item ) {
    $item->update_meta_data( '_item_tracking', '87654321' );
    $item->save();
}

// 获取订单项元数据
$order = wc_get_order( $post_id );
foreach ( $order->get_items() as $item_id => $item ) {
    $item_tracking = $item->get_meta( '_item_tracking', true );
    echo $item_tracking;
}

内容的提问来源于stack exchange,提问作者Douglas Marsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:55:26