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

如何为WooCommerce新订单通知邮件添加公司名称并自定义邮件主题

WooCommerce新B2B订单邮件嵌入公司名作为主题的实现方案

之前自定义占位符不生效的原因

WooCommerce默认的新订单邮件主题替换规则,仅内置了订单编号、客户姓名、站点名称等固定占位符,没有注册公司名称对应的匹配逻辑。直接在邮件配置页的主题输入框手写{company_name}这类自定义占位符,系统不会做任何字符替换,自然达不到预期展示效果。

可直接落地的实现代码

全程不需要修改WooCommerce核心文件,通过内置邮件钩子即可实现自定义主题,代码可添加在当前子主题的functions.php文件中,或通过自定义代码片段插件部署,避免升级覆盖丢失:

// 拦截商家收到的新订单通知邮件主题逻辑
add_filter('woocommerce_email_subject_new_order', 'custom_b2b_new_order_subject', 10, 2);
function custom_b2b_new_order_subject($default_subject, $order) {
    // 读取订单中存储的客户填写的账单公司名称
    $company_name = $order->get_billing_company();
    // 匹配到有效公司名时使用自定义主题,未匹配到则保留系统默认主题做兜底
    if (!empty($company_name)) {
        return sprintf('来自[%s]的新B2B订单', $company_name);
    }
    return $default_subject;
}

关键注意事项

  • 如果你的B2B结账流程中,公司名称不是WooCommerce默认的billing_company字段(即自定义添加的独立结账字段),只需要把代码中获取公司名的逻辑,替换为对应订单meta的取值即可,例如$company_name = $order->get_meta('自定义公司字段的实际meta键名')
  • 这段逻辑仅作用于商家侧收到的新订单通知邮件,不会改动客户收到的订单确认邮件主题,不影响前端用户的收信体验
  • 禁止将代码直接写入WooCommerce核心插件目录下的文件,后续插件升级时代码会被完全覆盖丢失
  • 代码部署完成后,提交一笔携带有效公司名的测试订单做验证:如果出现主题中公司名为空的情况,直接检查公司名在订单数据库中的实际存储位置,调整取值逻辑即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 12:36:06