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

PHP中如何获取WooCommerce的WC_Meta_Data对象内的value键值

问题原因
  • 首先$meta[1]是WC_Meta_Data对象类型,不是数组,你使用数组下标的$meta[1][value]语法本身就不符合PHP对象的访问规则。
  • 其次你在print_r结果里看到的current_data、data都是protected(受保护)属性,PHP不允许在类定义外部直接访问受保护/私有属性,就算你强制转数组也无法正常读取到值。
正确获取方式

WooCommerce的WC_Meta_Data类已经内置了公开的取值方法,直接调用get_value()方法即可读取对应value值:

// 直接获取value
$custom_end_date = $meta[1]->get_value();
echo $custom_end_date;

如果需要同时获取meta的键名,也可以调用配套的get_key()方法:

$meta_key = $meta[1]->get_key(); // 输出结果为 _end_date_custom_field

如果是遍历整个$meta数组读取所有meta值,可以这么写:

foreach ($meta as $single_meta) {
    $key = $single_meta->get_key();
    $value = $single_meta->get_value();
    // 这里写你的业务逻辑
}

补充说明:WooCommerce所有内置数据对象都遵循用get_*/set_*方法读写属性的规范,不要尝试直接访问受保护属性,用官方提供的公开方法兼容性最好,也不会触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:54:03