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

如何仅在WooCommerce管理员新订单邮件中添加自定义订单元字段

仅在WooCommerce管理员新订单邮件中显示自定义字段

你的代码目前会在所有订单邮件中添加自定义字段,要实现仅在管理员的新订单邮件里展示,需要添加条件判断并完善钩子参数,修改后的代码如下:

/*----------------------------------------------
    仅在管理员新订单邮件中添加出生日期字段
-------------------------------------------------*/
add_filter('woocommerce_email_order_meta_fields', 'my_woocommerce_email_order_meta_fields', 10, 4 );

function my_woocommerce_email_order_meta_fields( $fields, $sent_to_admin, $order, $email ) {
    // 仅在发给管理员的新订单邮件中注入字段
    if ( $sent_to_admin && $email->id === 'new_order' ) {
        $fields[ 'birthdate' ] = array(
            'label' => '出生日期',
            'value' => $order->get_meta( '_billing_birthdate' )
        );
    }

    return $fields;
}

关键修改说明:

  • 调整钩子参数:把原钩子的参数数量从3改为4,同时将优先级设为10(默认合理值),这样可以获取到$email对象来判断邮件类型
  • 添加双重条件判断:
    • $sent_to_admin:确保邮件是发给管理员的
    • $email->id === 'new_order':进一步限定仅在新订单邮件中显示,避免管理员收到的其他类型邮件(如订单完成、退款通知)也出现该字段
  • 标签翻译:将原德语标签Geburtstag改为中文出生日期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:25:35