首页 > 解决方案 > 如何在新订单电子邮件中将客户的所有详细信息发送给管理员,并将客户的一些详细信息发送给供应商

问题描述

创建新订单时,我正在使用以下 WooCommerce 功能将客户详细信息通过电子邮件发送给管理员供应商。

<?php 
/**
* WooCommerce new order email customer details
*/
function filter__woocommerce_email_customer_details_fields( $fields, $sent_to_admin, $order ) {

    if ( empty( $fields ) ) {

        if ( $order->get_billing_email() ) {
            $fields['billing_email'] = array(
            'label' => __( 'Email address', 'woocommerce' ),
            'value' => wptexturize( $order->get_billing_email() ),
            );
        }
        if ( $order->get_billing_phone() ) {
            $fields['billing_phone'] = array(
            'label' => __( 'Phone', 'woocommerce' ),
            'value' => wptexturize( $order->get_billing_phone() ),
            );
        }
        if ( $order->get_customer_note() ) {
            $fields['customer_note'] = array(
            'label' => __( 'Customer note', 'woocommerce' ),
            'value' => wptexturize( $order->get_customer_note() ),
            );
        }

    }

    return $fields;
}
add_filter( 'woocommerce_email_customer_details_fields', 'filter__woocommerce_email_customer_details_fields', 10, 3 );

但是现在我想要自定义,比如当新的订单电子邮件发送给管理员时,所有 3 个详细信息(电子邮件、电话和便笺)都需要发送给管理员,但只有 2 个详细信息(Emai 和便笺)需要发送给供应商

我正在使用YITH WooCommerce 多供应商插件,该插件将订单电子邮件发送给特定供应商

我如何检查是否将电子邮件发送给管理员然后发送所有 3 个详细信息,如果电子邮件发送给供应商则仅发送 2 个详细信息?

标签: phpwordpressemailwoocommerce

解决方案


电话字段应仅发送给管理员,其他字段应发送给所有人。您必须为此添加条件if。(我认为$sent_to_admin如果将当前消息发送给管理员,则描述的是布尔值)。

if ( $order->get_billing_phone() && $sent_to_admin ) {
    $fields['billing_phone'] = array(
        'label' => __( 'Phone', 'woocommerce' ),
        'value' => wptexturize( $order->get_billing_phone() ),
    );
}

推荐阅读