当前位置: 首页 > 知识库问答 >
问题:

Woocommerce:添加第二个电子邮件地址不起作用,除非收件人是管理员

秋光熙
2023-03-14

我已经尝试了几种方法来向Woocommerce电子邮件添加额外的收件人,但它似乎只适用于主要收件人是管理员的测试订单。

这些是我试过的片段。如果订单的客户是管理员,则电子邮件将同时发送到两个地址。如果订单包含客户电子邮件地址,则只发送到该电子邮件地址,而不发送到CC。

下面是我尝试过的代码片段:

add_filter( 'woocommerce_email_recipient_customer_processing_order', 'my_email_recipient_filter_function', 10, 2);

function my_email_recipient_filter_function( $recipient ) {
$recipient = $recipient   . ', secondemail@example.com';
return $recipient;
}

.

add_filter( 'woocommerce_email_headers', 'woocommerce_email_cc_copy', 10, 2);

function woocommerce_email_cc_copy( $headers, $email ) {
if ( $email == 'customer_processing_order') {
    $headers .= 'CC: Your name <secondemail@example.com>' . "\r\n"; //just repeat this line again to insert another email address in BCC
}

return $headers;
}

.

这是一个工作,但激发了每一个电子邮件通知:

add_filter( 'woocommerce_email_headers', 'mycustom_headers_filter_function', 10, 2);

function mycustom_headers_filter_function( $headers, $object ) {
        $headers .= 'CC: My name <secondemail@example.com>' . "\r\n";

    return $headers;
}

如果我在中添加电子邮件$object,因此它只针对客户处理订单激发,它只抄送管理电子邮件(只抄送,不抄送收件人),不抄送客户(既不抄送也不抄送收件人)。

add_filter( 'woocommerce_email_headers', 'mycustom_headers_filter_function', 10, 2);

function mycustom_headers_filter_function( $headers, $object ) {
 if ( $object == 'customer_processing_order') {
        $headers .= 'CC: My name <secondemail@example.com>' . "\r\n";
 }

    return $headers;
}

如果有任何建议,我将不胜感激。

共有2个答案

祁永嘉
2023-03-14

罪魁祸首是Woocommerce订阅使用customer_processing_renewal_order覆盖了customer_processing_order$email_id。更新此文本后,邮件头和收件人都可以修改

headers挂钩,用于Woocommerce订阅:

add_filter( 'woocommerce_email_headers', 'mycustom_headers_filter_function', 10, 2);

function mycustom_headers_filter_function( $headers, $object ) {

// If Woocommerce Subscriptions is active, this needs the renewal email id
 if ( $object == 'customer_processing_renewal_order') {
        $headers .= 'CC: My name <secondemail@example.com>' . "\r\n";
 }

    return $headers;
}

和收件人挂钩:

// If Woocommerce Subscriptions is active, hook needs the renewal email id
add_filter( 'woocommerce_email_recipient_customer_processing_renewal_order', 'my_email_recipient_filter_function', 10, 2);

function my_email_recipient_filter_function( $recipient ) {
$recipient = $recipient   . ', secondemail@example.com';
return $recipient;
}
堵凯
2023-03-14

以下代码在Woocommerce上一个版本(V3.4.3)中工作,在“CC”中添加一个自定义电子邮件,用于客户处理电子邮件通知:

add_filter( 'woocommerce_email_headers', 'custom_cc_email_headers', 20, 3 );
function custom_cc_email_headers( $header, $email_id, $order ) {

    // Only for "Customer Completed Order" email notification
    if( 'customer_processing_order' !== $email_id )
        return $header;

    // Prepare the the data
    $formatted_email = utf8_decode('Mister bean <misterbean@example.com>');

    // Add Cc to headers
    $header .= 'Cc: '.$formatted_email .'\r\n';

    return $header;
}

代码放在您的活动子主题(或活动主题)的function.php文件中。经过测试并起作用。

您甚至可以将其添加到密件抄送而不是抄送,就像在这个应答线程中:
为特定的Woocommerce电子邮件通知添加自定义电子邮件到密件抄送

钩子woocommerce_email_recipient_customer_processing_order在Woocommerce 3.4.x中似乎不起作用。

 类似资料:
  • 在woocommerce thank you页面上,如果订单状态正在处理,则向多个电子邮件地址发送WC_Email_Customer_Invoice电子邮件。 但问题是电子邮件只发送到客户的电子邮件地址,没有电子邮件发送到prohostreview@gmail.com。我正在使用最新的WordPress和woo-commerce插件。 请告诉我我在这里做错了什么。 问候。

  • 当WooCommerce中的订单状态从pending设置为processing时,我可以向我的客户发送电子邮件。但我需要发送一个电子邮件只到一个自定义电子邮件adresse而不是客户默认地址。 文件有钩子或过滤器吗?

  • 我们有一个非常直接的DocuSign集成,用户可以从我们的文档管理工具中添加签名者并发送文档进行签名,签名者级别的更新由工具自动获取,并可在我们的工具内供请求者使用。 我们最近在DocuSign集成中遇到了一个相当意外的情况,DocuSign将签名者的一个电子邮件地址更新/更改/解析为另一个电子邮件地址。因此,每当我们(工具)尝试获取对应于该签名者的更新时,DocuSign都会不断返回空指针异常(

  • 我有一个插件管理我的货件与两个自定义状态:等待-装运和装运。 我尝试添加一个电子邮件发送时,订单传递到发货。 我在Stack Overflow:Woocommerce退款电子邮件中发现了这一点,但我可以知道它是如何工作的 下面是我的插件文件代码: 我用下面的helgatheviking和Adrien Leber的建议更新了我的代码 和我的班级: 当我改变我的订单状态时,什么也没有发生!我的触发函数

  • 我正试图通过一个Jenkins脚本管道,借助ext电子邮件插件发送电子邮件。 我已经用默认收件人配置了插件。 这是我的管道: 我试图将电子邮件发送给触发作业的用户,但没有收到发送给默认收件人的电子邮件。我还尝试了。 我得到了这个错误:

  • 问题内容: 我想在我的网站上使用自动填充/自动格式化的“收件人”字段,该字段的工作方式类似于GMail中的字段。 有谁知道jQuery这样的事情? 纯JavaScript?还是其他选择? 问题答案: 有很多的jquery位可以做到这一点,您可以在Google上搜索“ jquery autocomplete”,然后看看最喜欢哪个。 这是比较有名的一个:http : //docs.jquery.com