Php 基于WooCommerce电子邮件通知中销售的产品的不同收件人

Php 基于WooCommerce电子邮件通知中销售的产品的不同收件人,php,wordpress,woocommerce,product,email-notifications,Php,Wordpress,Woocommerce,Product,Email Notifications,我想在WooCommerce上为不同的企业销售一些虚拟物品。因此,当客户退房后,我希望将电子邮件发送给相关业务部门(而不是管理员) 因此,当产品A售出时,将发送一封电子邮件至a@email.com. 当产品B售出时,电子邮件将发送至b@email.com. 当产品C售出时,电子邮件将发送至c@email.com...and诸如此类 是否有一些代码可以添加到functions.php来实现这一点 根据“”应答代码,以下内容将允许用户根据产品Id添加不同的电子邮件收件人: add_filter( '

我想在WooCommerce上为不同的企业销售一些虚拟物品。因此,当客户退房后,我希望将电子邮件发送给相关业务部门(而不是管理员)

因此,当产品A售出时,将发送一封电子邮件至a@email.com. 当产品B售出时,电子邮件将发送至b@email.com. 当产品C售出时,电子邮件将发送至c@email.com...and诸如此类

是否有一些代码可以添加到functions.php来实现这一点

根据“”应答代码,以下内容将允许用户根据产品Id添加不同的电子邮件收件人:

add_filter( 'woocommerce_email_recipient_new_order', 'custom_email_recipient_new_order', 10, 2 );
function custom_email_recipient_new_order( $recipient, $order ) {
    // Not in backend when using $order (avoiding an error)
    if( ! is_a($order, 'WC_Order') ) return $recipient;

    // Define the email recipients / product Ids pairs
    $recipients_product_ids = array(
        'product.one@email.com'   => array(37),
        'product.two@email.com'   => array(40),
        'product.three@email.com' => array(53, 57),
    );

    // Loop through order items
    foreach ( $order->get_items() as $item ) {
        // Loop through defined product categories
        foreach ( $recipients_product_ids as $email => $product_ids ) {
            $product_id   = $item->get_product_id();
            $variation_id = $item->get_variation_id();
            if( array_intersect([$product_id, $variation_id], $product_ids) && strpos($recipient, $email) === false ) {
                $recipient .= ',' . $email;
            }
        }
    }
    return $recipient;
}
代码进入活动子主题(或活动主题)的function.php文件。测试和工作