订单完成后,将电子邮件发送到自定义邮件类型中的自定义字段

时间:2020-04-06 作者:DEM

因此,我有这个功能,应该通过CC将完成的订单电子邮件发送到自定义电子邮件地址。如果函数仅包含If语句(请参见下文),则其工作正常。但是,当我添加其他自定义代码时,不会触发电子邮件。

我有一个自定义的帖子类型,可以存储所需的电子邮件地址。

抄送电子邮件是从产品元中的ACF Post对象字段抓取的。从ACF post对象字段中,我获取自定义字段(partner\\u email)。

我知道$partnerEmail是有效的,因为我在错误日志中看到了它——然而,当我将该变量输入到标题中时,它不起作用。任何帮助都将不胜感激。提前谢谢。

add_filter( \'woocommerce_email_headers\', \'enyc_order_completed_email_add_cc_bcc\', 9999, 3 );

function enyc_order_completed_email_add_cc_bcc( $headers, $email_id, $order ) {

$order_id = method_exists( $order, \'get_id\' ) ? $order->get_id() : $order->id;  

$order = new WC_Order( $order_id );

$items = $order->get_items();

foreach ( $items as $item ) {

    //Get Product ID
    $product_id = $item[\'product_id\'];

    //Get Product Data
    $product = wc_get_product( $product_id );

    //Get Partner Data from Product
    $partner = get_field( \'venue\', $product_id);

    //Get Partner ID
    $partnerID = $partner->ID;



    //Get Partner Email
    $partnerEmail = get_field( \'partner_email\', $partnerID);

    //error_log( $partnerEmail);



}

 if ( \'customer_completed_order\' == $email_id ) {
       $headers .= \'Cc: Name <\'.$partnerEmail.\'>\' . \'\\r\\n\'; // del if not needed
    $headers .= \'Bcc: Name <dave@eternal.nyc>\' . \'\\r\\n\'; // del if not needed
    }   


    return $headers;
}

1 个回复
SO网友:7uc1f3r

How to debug

Step 1

add_filter( \'woocommerce_email_headers\', \'enyc_order_completed_email_add_cc_bcc\', 10, 3 );
function enyc_order_completed_email_add_cc_bcc( $headers, $email_id, $order ) { 
    // CHANGE EMAIL
    $partnerEmail = \'some@email.com\';

    $headers .= \'Cc: Name <\'.$partnerEmail.\'>\' . \'\\r\\n\'; // del if not needed
    $headers .= \'Bcc: Name <dave@eternal.nyc>\' . \'\\r\\n\'; // del if not needed

    return $headers;
}

Step 1 works? -> step 2

add_filter( \'woocommerce_email_headers\', \'enyc_order_completed_email_add_cc_bcc\', 10, 3 );
function enyc_order_completed_email_add_cc_bcc( $headers, $email_id, $order ) {
    // CHANGE ID
    $product_id = 100;

    //Get Partner Data from Product
    $partner = get_field( \'venue\', $product_id);

    //Get Partner ID
    $partnerID = $partner->ID;

    //Get Partner Email
    $partnerEmail = get_field( \'partner_email\', $partnerID);

    $headers .= \'Cc: Name <\'.$partnerEmail.\'>\' . \'\\r\\n\'; // del if not needed
    $headers .= \'Bcc: Name <dave@eternal.nyc>\' . \'\\r\\n\'; // del if not needed

    return $headers;
}

Step 3, etc..

相关推荐