Woocommerce 基于角色的电子邮件
Posted
技术标签:
【中文标题】Woocommerce 基于角色的电子邮件【英文标题】:Woocommerce role based email emails 【发布时间】:2019-01-06 10:22:39 【问题描述】:我们有三个不同的客户组,每个组都有不同的客户经理。有没有办法根据组向客户经理发送 Woocommerce 订单确认电子邮件? 例如:
我们有组 1 的用户角色“Gold”。客户经理有电子邮件 gold@mysite.com 另一组是“银”。客户经理有电子邮件 silver@mysite.com现在,如果来自第 1 组(黄金)的客户下订单,则订单通知电子邮件应发送至 gold@mystite.com。如果 Silver 集团的客户下订单,则应将订单通知发送至电子邮件 silver@mysite.com
目前我们已经尝试过this code snippet here,但它也会向管理员发送电子邮件。如果客户不是上述用户角色,我们希望向管理员发送电子邮件。
【问题讨论】:
【参考方案1】:试试下面的代码。
add_action( 'init', 'Change_admin_mail_email');
function Change_admin_mail_email()
global $wp_roles;
$roles = $wp_roles->get_names();
$roles =array_keys($roles);
foreach($roles as $User_role_value)
add_filter( 'woocommerce_email_from_address', function( $from_email, $wc_email )
if($User_role_value=='gold')
$from_email = 'gold@mysite.com';
elseif($User_role_value=='silver')
$from_email = 'silver@mysite.com';
elseif($User_role_value=='platinum')
$from_email = 'platinum@mysite.com';
return $from_email;
, 10, 2 );
【讨论】:
不幸的是,这些 sn-ps 没有按照我想要的方式工作。这些 sn-ps 更改了“来自电子邮件”的地址,但描述的是订单电子邮件管理员通知应根据用户角色发送到不同的管理员电子邮件。【参考方案2】:试试下面这个代码你当前活动的主题functions.php文件。
add_filter( 'woocommerce_email_from_address', function( $from_email, $wc_email )
$user_id = get_current_user_id();
$user_data = get_userdata( $user_id );
if ( in_array( 'gold', $user_data->roles ) )
$from_email = 'gold@mysite.com';
elseif ( in_array( 'silver', $user_data->roles ) )
$from_email = 'silver@mysite.com';
elseif ( in_array( 'platinum', $user_data->roles ) )
$from_email = 'platinum@mysite.com';
return $from_email;
, 10, 2 );
【讨论】:
不幸的是,这些 sn-ps 没有按照我想要的方式工作。这些 sn-ps 更改了“来自电子邮件”的地址,但描述的是订单电子邮件管理员通知应根据用户角色发送到不同的管理员电子邮件。以上是关于Woocommerce 基于角色的电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
根据 Woocommerce 中的用户角色自定义客户新帐户邮件
基于 Woocommerce 中的运输方式的不同电子邮件标题
基于 WooCommerce 电子邮件通知中销售的产品的不同收件人