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

为WooCommerce处理订单发送与更多收件人的客户发票电子邮件

魏雅惠
2023-03-14

在woocommerce thank you页面上,如果订单状态正在处理,则向多个电子邮件地址发送WC_Email_Customer_Invoice电子邮件。

add_action( 'woocommerce_thankyou', 'dvs_add_more_recipient' );
function dvs_add_more_recipient($order_id) {
    $order = new WC_Order($order_id);
    if( ! $order->has_status( 'processing' ) ) return;
    
    $wc_email = WC()->mailer()->get_emails()['WC_Email_Customer_Invoice'];
    $wc_email->settings['recipient'] .= ',prohostreview@gmail.com';
    $wc_email->trigger( $order_id );            
}

但问题是电子邮件只发送到客户的电子邮件地址,没有电子邮件发送到prohostreview@gmail.com。我正在使用最新的WordPress和woo-commerce插件。

请告诉我我在这里做错了什么。

问候。

共有1个答案

穆远
2023-03-14

由于WooCommerce 3.7,您可以使用以下内容:

// Trigger email customer invoice for processing orders
add_action( 'woocommerce_order_status_processing', 'send_wc_email_customer_invoice', 10, 2 );
function send_wc_email_customer_invoice( $order_id, $order ) {
    WC()->mailer()->get_emails()['WC_Email_Customer_Invoice']->trigger( $order_id );            
}

// Add recipient to customer invoice for processing orders
add_filter( 'woocommerce_email_recipient_customer_invoice', 'add_recipient_processing_email_customer_invoice', 10, 2 );
function add_recipient_processing_email_customer_invoice( $recipient, $order = false ) {
    if ( ! $order || ! is_a( $order, 'WC_Order' ) ) 
        return $recipient;
        
    if ( $order->get_status() === 'processing' ) {
        $recipient .= ',prohostreview@gmail.com';
    }
    return $recipient;
}

代码放在活动子主题(或活动主题)的functions.php文件中。应该管用。

相关:仅针对未决订单状态和特定付款方式发送自定义的新订单通知

 类似资料:
  • 我在我的木业商店里遇到了一个很奇怪的问题。有几天“Customer_Processing_Order”电子邮件不再发送给客户。即使我在订单详细信息中触发手动发送此电子邮件,也没有发生任何事情。 在一般电子邮件中,发送与SMTP数据一起工作。当我将状态设置为“已完成”时,电子邮件将被发送。只有订单确认不起作用。 电子邮件被激活,我也检查了错误日志。我还安装了订单电子邮件的预览插件。当我想生成预览时,

  • 我的Wordpress安装有问题,更具体的说是WooCommerce。 我在过去几个月中一直在工作的客户希望,每次客户完成/支付订单时,除了标准的订单确认电子邮件外,还会向他的电子邮件地址发送一封自定义电子邮件。 简而言之:我需要在订单完成时给客户发送一封自定义邮件。如何在functions.php中做到这一点? 我尝试使用官方文档中描述的各种钩子和函数,但无法弄明白。 Wordpress的版本是

  • 我四处搜索,从我可以看出,大多数人只是使用一个SMTP插件为这...但是,我想知道怎么了!:) 几周前,我们开始收到报告说,客户没有收到他们的确认电子邮件,当他们下了订单在我们的商店。这以前工作得很好。这里是真正奇怪的部分,据我所知,它只是当我下了一个订单,处理电子邮件没有发送。我们有两种支付选择,贝宝和克拉纳。两个都有用,我自己也试过。我给自己下了真正的订单,一切都很顺利...除了来自Wooco

  • 问题内容: 我有一些PHP代码,用于将表单发送到特定的电子邮件地址。但是,我想在PHP发送时再添加几个电子邮件地址。我怎样才能做到这一点? 谢谢。 问题答案: 这将起作用:

  • 关于这个线程的后续:Woocommerce退款电子邮件 我有一个问题我似乎无法解决,我阅读了所有关于扩展WC_Email类的主题,该类具有自定义触发器,但我无法使其工作。 我想要实现的是添加一个电子邮件通知到WooCommerce电子邮件设置,并发送一封电子邮件给收件人,只要客户更新它的帐单或运输细节。 因此,在functions.php中,我将woocommerce_customer_save_

  • 拜托,帮忙解决问题。我想让WooComerce只发送一次电子邮件,关于新的订单-管理和客户。如果我将更改订单状态-没有电子邮件将被发送。 我尝试在处禁用通知,并禁用客户端的所有通知,但在这种情况下,客户端即使是第一次也不会收到任何电子邮件。