WooCommerce帮助-Don';如果产品可以下载,请不要向用户发送电子邮件

WooCommerce帮助-Don';如果产品可以下载,请不要向用户发送电子邮件,woocommerce,Woocommerce,当我配置WooCommerce的“新订单”电子邮件设置时,我写了两封电子邮件(email1@domain.com, email2@domain.com)在收件人字段中 我的需要是: -当用户购买可下载产品时,向email1发送电子邮件 -当用户购买普通产品时,向email1和email2发送电子邮件 我浏览了WooCommerce的代码,不可能实现一个函数或一些代码来实现这一点 有人能给我一个线索或帮助我做这件事吗 谢谢大家! 测试代码: add_filter( 'woocommerce_ema

当我配置WooCommerce的“新订单”电子邮件设置时,我写了两封电子邮件(email1@domain.com, email2@domain.com)在收件人字段中

我的需要是: -当用户购买可下载产品时,向email1发送电子邮件 -当用户购买普通产品时,向email1和email2发送电子邮件

我浏览了WooCommerce的代码,不可能实现一个函数或一些代码来实现这一点

有人能给我一个线索或帮助我做这件事吗

谢谢大家!

测试代码:

add_filter( 'woocommerce_email_recipient_new_order', 'so_28025177', 10, 2 );
function so_28025177( $recipients, $order_object  ) {

        $email_one  =  'downloadable@example.com';
        $email_two  =  'physical@example.com';

        $wc_order     =  new WC_Order( $order_object->id );
        $order_items  =  $wc_order->get_items( );

        $has_downloadable  =  false;
        $has_physical      =  false;

        foreach( $order_items as $item ) {

                $product_id  =  $item[ 'product_id' ];

                $product_meta  =  get_post_meta( $product_id, '_downloadable', true );

                if( $product_meta  ==  'yes' ) {
                        $has_downloadable  =  true;
                }
                elseif( $product_meta  ==  'no' ) {
                        $has_physical  =  true;
                }

        }

        if( $has_downloadable && ! $has_physical ) {
                $recipients .=  ',' . $email_one;
        }
        elseif ( $has_physical && ! $has_downloadable ) {
                $recipients .=  ',' . $email_two;
        }
        elseif ( $has_downloadable && $has_physical ) {
                $recipients .=  ',' . $email_one . ',' . $email_two;
        }

        return $recipients;

}

我看不到基于订单修改新订单收件人的方法。我怀疑您需要设置一个定制的email类(大部分类似于neworder类),用于检查是否存在可下载的产品。如果您遇到问题,请从开始并返回。@helgatheviking您可以使用woocommerce摘要
woocommerce\u电子邮件\u收件人\u
过滤器。通过输入目标电子邮件,您可以修改收件人。看看我的答案。哇!!非常感谢Dez!!!是否有可能在admin字段中输入收件人??Good work@Dez。我只是不确定
$order
是否已传递到该筛选器。我以为那是
$email
类对象+1@user3800667“$recipients”变量以在admin字段中输入的变量开头。我将更新我的答案以包括这些。