如何将所有WooCommerce邮件添加额外收件人以适配SendGrid入站解析?
如何将所有WooCommerce邮件直接发送至指定邮箱(替代抄送)
要让WooCommerce邮件直接把目标邮箱设为收件人(而非抄送),你需要修改邮件的收件人参数,而非仅调整邮件头。以下是实现代码:
function custom_add_direct_recipient_to_all_woocommerce_emails( $recipient, $email ) { $additional_email = 'additional@example.com'; // 保留原始收件人并添加新邮箱,用逗号分隔多个收件人 if ( ! empty( $recipient ) ) { $recipient .= ',' . $additional_email; } else { $recipient = $additional_email; } return $recipient; } // 为所有WooCommerce邮件类型绑定收件人修改逻辑 add_action( 'woocommerce_email', function( $email_class ) { foreach ( $email_class->emails as $email ) { add_filter( 'woocommerce_email_recipient_' . $email->id, 'custom_add_direct_recipient_to_all_woocommerce_emails', 10, 2 ); } } );
代码说明:
- 第一个函数负责修改收件人:如果原有收件人存在,就把目标邮箱用逗号追加到后面;如果原有收件人为空,则直接设置为目标邮箱。
- 第二个部分通过
woocommerce_email动作钩子,遍历所有WooCommerce邮件类型,为每个邮件绑定收件人修改逻辑,确保所有订单邮件、客户通知邮件等都会生效。
使用方法:
- 将代码中的
additional@example.com替换为你需要的目标邮箱。 - 把代码添加到你的WordPress主题的
functions.php文件中,或者创建一个自定义插件来存放这段代码。
如果需要完全替换原始收件人(只发送到目标邮箱),只需把第一个函数里的逻辑改成:
function custom_add_direct_recipient_to_all_woocommerce_emails( $recipient, $email ) { return 'additional@example.com'; }
内容的提问来源于stack exchange,提问作者Nick MacKay
相关产品推荐
相关产品推荐

