Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Woocommerce 基于角色的电子邮件_Woocommerce - Fatal编程技术网

Woocommerce 基于角色的电子邮件

Woocommerce 基于角色的电子邮件,woocommerce,Woocommerce,我们有三个不同的客户群体,每个群体有不同的客户经理。是否有办法根据集团向客户经理发送商业订单确认电子邮件? 例如: 我们为第1组设置了用户角色“Gold”。客户经理有电子邮件 gold@mysite.com 另一组是“银”。客户经理有电子邮件 silver@mysite.com 现在,如果来自第1组(黄金)的客户下了订单,则订单通知电子邮件应发送至gold@mystite.com. 如果银牌集团的客户下订单,则订单通知应发送至电子邮件silver@mysite.com 目前我们已经尝试过了,

我们有三个不同的客户群体,每个群体有不同的客户经理。是否有办法根据集团向客户经理发送商业订单确认电子邮件? 例如:

  • 我们为第1组设置了用户角色“Gold”。客户经理有电子邮件 gold@mysite.com
  • 另一组是“银”。客户经理有电子邮件
    silver@mysite.com
现在,如果来自第1组(黄金)的客户下了订单,则订单通知电子邮件应发送至gold@mystite.com. 如果银牌集团的客户下订单,则订单通知应发送至电子邮件silver@mysite.com


目前我们已经尝试过了,但它也会向管理员发送电子邮件。如果客户不属于上述任何用户角色,我们将向管理员发送电子邮件。

请尝试以下代码来编写您当前的活动主题函数.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 );  
试试下面的代码

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 );  

         }

}

不幸的是,这些代码片段没有按照我想要的方式工作。这些代码片段更改了“来自电子邮件”的地址,但所描述的是,订单电子邮件管理员通知应根据用户角色发送到不同的管理员电子邮件。不幸的是,这些代码片段没有按照我希望的方式工作。这些代码片段更改了“来自电子邮件”的地址,但所描述的是订单电子邮件管理员通知应根据用户角色发送到不同的管理员电子邮件。