就 Woocommerce 中取消的订单向客户发送电子邮件

问题描述 投票:0回答:2

当订单被取消时,我正在尝试向客户发送电子邮件。默认情况下,woocommerce 仅将此电子邮件发送给网站管理员。 此代码解决了网络上相关帖子的问题:

function wc_cancelled_order_add_customer_email( $recipient, $order ){
   return $recipient . ',' . $order->billing_email;
}
add_filter( 'woocommerce_email_recipient_cancelled_order', 'wc_cancelled_order_add_customer_email', 10, 2 );
add_filter( 'woocommerce_email_recipient_failed_order', 'wc_cancelled_order_add_customer_email', 10, 2 );

但是,woocommerce 似乎完全删除了这些过滤器挂钩。 有什么办法可以做到这一点吗?

提前致谢!

php wordpress woocommerce orders email-notifications
2个回答
37
投票

在这个挂在

woocommerce_order_status_changed
操作挂钩中的自定义函数中,我的目标是“已取消”和“失败”订单,向客户发送相应的电子邮件通知(因为管理员将通过 WooCommerce 自动通知在他身边收到它):

add_action('woocommerce_order_status_changed', 'send_custom_email_notifications', 10, 4 );
function send_custom_email_notifications( $order_id, $old_status, $new_status, $order ){
    if ( $new_status == 'cancelled' || $new_status == 'failed' ){
        $wc_emails = WC()->mailer()->get_emails(); // Get all WC_emails objects instances
        $customer_email = $order->get_billing_email(); // The customer email
    }

    if ( $new_status == 'cancelled' ) {
        // change the recipient of this instance
        $wc_emails['WC_Email_Cancelled_Order']->recipient = $customer_email;
        // Sending the email from this instance
        $wc_emails['WC_Email_Cancelled_Order']->trigger( $order_id );
    } 
    elseif ( $new_status == 'failed' ) {
        // change the recipient of this instance
        $wc_emails['WC_Email_Failed_Order']->recipient = $customer_email;
        // Sending the email from this instance
        $wc_emails['WC_Email_Failed_Order']->trigger( $order_id );
    } 
}

代码位于活动子主题(或主题)的 function.php 文件中,或者也位于任何插件文件中。

这应该适用于 WooCommerce 3+

如果您需要,您可以将其添加到现有收件人,而不是更改电子邮件:

// Add a recipient in this instance
$wc_emails['WC_Email_Failed_Order']->recipient .= ',' . $customer_email;

相关答案:订单状态从待处理变为已取消时发送电子邮件通知


0
投票

这应该适用于 WooCommerce 3+ 但它不能处理批量更改多个订单的状态

附注我讨厌写评论作为答案,但奇怪的是你怎么能做到这一点却没有点写真正的评论。尽管我建议对答案进行编辑,但它被拒绝了,因为根据审阅者的说法,它应该是评论。然而,我无法将其添加为评论。那么如果你删除这个,你可以编辑答案吗?

© www.soinside.com 2019 - 2024. All rights reserved.