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

如何从WooCommerce的$order对象中获取_enviso_selected_date字段值

你可以通过遍历订单所有商品项、匹配指定meta键的方式实现通用取值,不需要硬编码订单项ID和meta数组索引,实现代码如下:

简化写法(推荐)

WooCommerce的订单项类已经封装了直接取自定义字段的get_meta()方法,无需手动遍历meta数据集:

$target_meta_key = '_enviso_selected_date';
$offer_date = '';

// 遍历订单下所有商品项
foreach ( $order->get_items() as $item ) {
    $date_value = $item->get_meta( $target_meta_key, true );
    if ( ! empty( $date_value ) ) {
        $offer_date = $date_value;
        // 找到目标值后跳出循环,若存在多商品带该字段可自行调整存储逻辑
        break;
    }
}

完整遍历写法(兼容特殊自定义场景)

如果需要对meta数据做更多判断,可手动遍历meta数据集:

$target_meta_key = '_enviso_selected_date';
$offer_date = '';

foreach ( $order->get_items() as $item ) {
    $all_meta = $item->get_meta_data();
    foreach ( $all_meta as $meta ) {
        $meta_info = $meta->get_data();
        if ( $meta_info['key'] === $target_meta_key ) {
            $offer_date = $meta_info['value'];
            break 2;
        }
    }
}

上述两种写法都可以适配所有订单,不会受订单项ID变动的影响。如果单个订单内有多个商品项都携带_enviso_selected_date字段,你可以根据业务需求调整逻辑,比如把所有匹配到的值存入数组,或者指定取第一个/最后一个匹配值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:39:03