返回
WooCommerce不同产品订单分别发送不同收件人通知邮件
php
2024-03-12 06:08:41
如何根据 WooCommerce 中销售的产品向不同的收件人发送电子邮件通知
问题陈述
您是否厌倦了当 WooCommerce 订单中包含多种商品时将通知发送给默认管理员?想象一下,您可以根据销售的产品将电子邮件发送到相关的企业或个人。这将提高效率并确保相关方及时收到必要的信息。
解决方案
本文将提供一个易于实施的代码段,您可以在 functions.php 文件中添加,从而根据 WooCommerce 订单中销售的产品向不同的收件人发送电子邮件通知。
步骤 1:识别产品 ID
订单包含哪些产品?通过获取每个产品的 ID,您可以确定产品所属的类别或企业。
$product_ids = array();
foreach ( $order->get_items() as $item ) {
$product_ids[] = $item->get_product_id();
}
步骤 2:确定收件人电子邮件
根据产品 ID,确定应接收通知的收件人电子邮件。您可以根据自己的需要自定义此部分。
switch ( $product_ids[0] ) {
case 123:
$recipient_email = '[[email protected]](/cdn-cgi/l/email-protection)';
break;
case 456:
$recipient_email = '[[email protected]](/cdn-cgi/l/email-protection)';
break;
case 789:
$recipient_email = '[[email protected]](/cdn-cgi/l/email-protection)';
break;
default:
$recipient_email = $email->get_recipient();
break;
}
步骤 3:设置新的收件人
现在,您已识别出收件人,只需将电子邮件通知的收件人设置为该电子邮件地址。
$email->set_recipient( $recipient_email );
代码示例
将以下代码添加到您的 functions.php 文件中以实现此功能:
add_action( 'woocommerce_email_before_send', 'custom_woocommerce_email_recipient', 10, 3 );
function custom_woocommerce_email_recipient( $email_class, $email, $order ) {
// 获取订单中所有产品的 ID
$product_ids = array();
foreach ( $order->get_items() as $item ) {
$product_ids[] = $item->get_product_id();
}
// 根据产品 ID 确定收件人邮箱
$recipient_email = '';
switch ( $product_ids[0] ) {
case 123:
$recipient_email = '[[email protected]](/cdn-cgi/l/email-protection)';
break;
case 456:
$recipient_email = '[[email protected]](/cdn-cgi/l/email-protection)';
break;
case 789:
$recipient_email = '[[email protected]](/cdn-cgi/l/email-protection)';
break;
default:
$recipient_email = $email->get_recipient();
break;
}
// 设置新的收件人邮箱
$email->set_recipient( $recipient_email );
}
结论
通过实施此代码,您可以在 WooCommerce 订单中包含多种商品时,向不同的收件人发送定制的电子邮件通知。这对于提高效率和确保相关方及时收到必要信息非常有用。
常见问题解答
- 我需要添加其他产品和收件人吗?
是的,您可以根据需要添加任意数量的产品和收件人。只需在 switch
语句中添加额外的 case
语句。
- 此方法是否适用于所有 WooCommerce 电子邮件通知?
是的,此方法适用于所有 WooCommerce 电子邮件通知,包括订单确认、发货通知和退款通知。
- 是否可以通过插件实现此功能?
虽然有插件可以实现类似的功能,但此方法不需要安装或配置任何额外的插件。
- 我需要编辑哪些文件?
您需要编辑 functions.php 文件。
- 此方法会影响我的 WooCommerce 网站的其他功能吗?
此方法仅会影响电子邮件通知的收件人,不会影响您网站的其他功能。