php - 如何在新订单电子邮件中将客户的所有详细信息发送给管理员,并将客户的一些详细信息发送给供应商
问题描述
创建新订单时,我正在使用以下 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 个详细信息?
解决方案
电话字段应仅发送给管理员,其他字段应发送给所有人。您必须为此添加条件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() ),
);
}
推荐阅读
- html - 如何防止选择标签自动选择第一个选项?
- python - Pandas:str提取文本除了字符串的最后一部分之外的所有内容
- bash - 除非我回显它,否则命令替换不会执行
- html - 使用 webdriver 从焦点页面切换到确认页面
- amazon-s3 - 通过 cli 为 aws s3 存储桶启用服务器端加密策略时出错
- ansible - 错误!在 git clone ansible playbook 的任务中未检测到模块/操作
- python - Scipy 非常奇怪地拟合并创建了多个拟合曲线,这不应该是这种情况,我知道曲线拟合不会返回多条曲线
- java - 如何使用 Gradle 创建 Java Spring WebApp 文件夹结构
- angular - 缩放时,滚动条会粘在 Angular 9 中文档的开头
- reactjs - ReactJS:如何检测表单是否已输入