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

如何调整代码实现修改WooCommerce邮件通知中的订单项meta数据

适配修改说明

你用到的woocommerce_order_item_get_formatted_meta_data过滤器完全可以适配为修改订单项meta的用途,你之前的写法没有得到预期结果的核心原因是:

$formatted_meta数组的每个元素都是stdClass对象,包含key、value、display_key、display_value四个属性,你直接将整个对象替换为字符串,无法被邮件模板正常识别渲染。

正确实现代码
add_filter( 'woocommerce_order_item_get_formatted_meta_data', 'modify_specific_order_item_meta_for_emails', 10, 2);
function modify_specific_order_item_meta_for_emails($formatted_meta, $item){
    // 仅在邮件通知场景生效,后台和我的账户页面不改动
    if( is_admin() || is_wc_endpoint_url() )
        return $formatted_meta;

    foreach( $formatted_meta as $key => $meta ){
        // 场景1:修改指定meta的内容,替换your_meta_key为你要修改的实际meta键
        if( $meta->key === 'your_meta_key' ){
            // 修改meta显示值
            $meta->display_value = '自定义的新值';
            // 如需修改meta显示的标签,可额外修改display_key属性
            // $meta->display_key = '自定义标签';
        }

        // 场景2:如果要批量修改所有meta,去掉下面的注释即可
        // $meta->display_value = '统一的新值';
    }
    return $formatted_meta;
}
注意事项
  • WooCommerce邮件模板渲染订单项meta时默认读取display_key和display_value属性,无需改动原始的key和value属性即可实现自定义效果
  • 若需要移除不需要的meta,直接unset($formatted_meta[$key])即可,和你找到的原有代码逻辑一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:36:04