如何修改WooCommerce订单发票邮件的收件人地址?
修改WooCommerce订单发票收件人地址(V3.6.5 + Flatsome主题)
从你的描述来看,应该是想修改商家接收订单发票/通知的收件人邮箱,毕竟改了管理员邮箱还是收到旧地址的邮件,下面给你分两种方案解决:
一、后台设置优先尝试
你可能没注意到WooCommerce单个邮件的独立设置项,试试这个路径:
- 进入「WooCommerce → 设置 → 邮件」选项卡
- 找到和订单发票相关的邮件(比如「新订单」「客户发票」,不同版本命名略有差异),点击邮件标题进入详情页
- 在详情页面里,应该会有「收件人」输入框,直接填入你想要的邮箱地址即可
注:如果你的3.6.5版本里单个邮件没有收件人设置项,就只能用下面的代码方法
二、代码修改方案
建议把代码加到Flatsome子主题的functions.php里(避免主题更新丢失代码),如果没有子主题,也可以暂时加到主题根目录的functions.php里(更新主题前记得备份):
方案1:修改所有订单相关通知的收件人
如果想让所有订单类邮件都发到新邮箱,用这段代码:
// 修改WooCommerce订单通知的收件人邮箱 add_filter( 'woocommerce_email_recipient_new_order', 'custom_change_order_email_recipient', 10, 2 ); add_filter( 'woocommerce_email_recipient_customer_invoice', 'custom_change_order_email_recipient', 10, 2 ); function custom_change_order_email_recipient( $recipient, $order ) { // 替换成你的目标邮箱,多个邮箱用逗号分隔 $recipient = 'your-new-email@example.com'; return $recipient; }
方案2:仅修改发票邮件的收件人
如果只想单独改发票邮件的收件人,用这段代码:
// 仅修改WooCommerce发票邮件的收件人邮箱 add_filter( 'woocommerce_email_recipient_customer_invoice', 'custom_change_invoice_email_recipient', 10, 2 ); function custom_change_invoice_email_recipient( $recipient, $order ) { $recipient = 'your-new-email@example.com'; return $recipient; }
添加代码后保存文件,测试下新订单就能看到效果了。
三、额外排查点
如果还是没生效,检查这两个地方:
- 是否有邮件类插件(比如WP Mail SMTP、MailPoet)修改了收件人设置,这类插件可能会覆盖WooCommerce的默认配置
- 用WooCommerce邮件设置里的「发送测试邮件」功能,确认服务器邮件功能正常
内容的提问来源于stack exchange,提问作者Jeroen Hoek




