将产品自定义字段中的收件人添加到Woocommerce新订单电子邮件通知中

时间:2018-04-19 00:33:17

标签: php wordpress woocommerce advanced-custom-fields email-notifications

在Woocommerce中,我想在产品帖子类型中添加一个带有高级自定义字段插件的电子邮件自定义字段。

如果客户下订单,我想将每个订单商品的相应电子邮件地址添加到新订单电子邮件通知中。

如何将产品自定义字段中的收件人添加到Woocommerce新订单电子邮件通知中?

1 个答案:

答案 0 :(得分:3)

对于"新订单"电子邮件通知,以下是从订单中的项目添加自定义电子邮件的方式(电子邮件自定义字段在产品中使用ACF设置)。

因此,您将首先在ACF中为"产品"设置自定义字段。发布类型:

enter image description here

然后您将拥有后端产品编辑页面:

enter image description here

完成后,当产品自定义字段全部通过电子邮件地址设置时,您将使用此代码添加到"新订单"通知订单中每个相应项目的电子邮件:

add_filter( 'woocommerce_email_recipient_new_order', 'add_item_email_to_recipient', 10, 2 );
function add_item_email_to_recipient( $recipient, $order ) {
    if( is_admin() ) return $recipient;

    $emails = array();

    // Loop though  Order IDs
    foreach( $order->get_items() as $item_id => $item ){
        // Get the student email
        $email = get_field( 'product_email', $item->get_product_id() );
        if( ! empty($email) )
            $emails[] = $email; // Add email to the array
    }

    // If any student email exist we add it
    if( count($emails) > 0 ){
        // Remove duplicates (if there is any)
        $emails = array_unique($emails);
        // Add the emails to existing recipients
        $recipient .= ',' . implode( ',', $emails );
    }
    return $recipient;
}

代码放在活动子主题(或活动主题)的function.php文件中。经过测试和工作。

相关:Send Woocommerce Order to email address listed on product page