繁体   English   中英

发送客户发票 email 与更多收件人 WooCommerce 处理订单

[英]Send customer invoice email with more recipients for WooCommerce processing orders

在 woocommerce 感谢页面上,如果订单状态正在处理,我希望将 WC_Email_Customer_Invoice email 发送到多个 email 地址。

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 );            
}

But the issue is email only sent to the customer's email address and there is no email sent to prohostreview@gmail.com. 我正在使用最新的 WordPress 和 woo-commerce 插件。

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

问候。

从 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文件。 它应该工作。

相关: 仅针对待处理订单状态和特定付款方式发送定制的新订单通知

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM