获取订单所有自定义字段
$all_meta = $order->get_meta_data();
echo '<pre>';
foreach ($all_meta as $meta) {
echo $meta->key . ' => ' . print_r($meta->value, true) . "\n";
}
echo '</pre>';

获取自定义字段
// 使用 WooCommerce 订单对象的 get_meta() 方法 ,获取自定义字段。
$paypal_fee = $order->get_meta('PayPal Transaction Fee');
if (!empty($paypal_fee)) {
echo '-' . $currency_symbol . number_format($paypal_fee, 2);
} else {
echo 'N/A';
}
关于get_meta()
WooCommerce 3.0+ 中的 所有实体对象(如订单、产品、客户等)都推荐使用 get_meta() 和 set_meta() 方法 来访问和修改自定义数据。这是 WooCommerce 统一的元数据接口,替代了 WordPress 原生的 get_post_meta() 和 update_post_meta()。
对象类型 | 获取方式 | 示例代码 |
订单 | wc_get_order($order_id) | $order->get_meta(‘custom_field’) |
产品 | wc_get_product($product_id) | $product->get_meta(‘custom_attribute’) |
客户 | new WC_Customer($customer_id) | $customer->get_meta(‘loyalty_points’) |
配送地址 | $order->get_shipping_address() | $address->get_meta(‘delivery_note’) |
优惠券 | new WC_Coupon($coupon_code) | $coupon->get_meta('minimum_quantity') |