在Woocommerce中获取和使用用户组名称

时间:2018-11-13 19:43:53

标签: php wordpress woocommerce usergroups

我仅将Wordpress与Woocommerce一起使用。有没有一种方法可以根据登录用户的信息来获取用户组名

我有一个名为“ Group1”的用户组,并为其分配了2个用户-user1,user12

我有第二个用户组,称为“ Group2”,并为其分配了2个用户-user2和user23。

现在,我需要检查哪个用户组是登录用户(所有用户具有相同的角色-客户)。

以下是我要执行的操作的代码示例:

$user_logged = wp_get_current_user();
$user_group_name = // how to get user_logged's group name ?
if ($user_group_name == 'Group1') // do 1st
if ($user_group_name == 'Group2') // do 2nd

组的名称不会更改,因此我将它们作为字符串放入代码中。但是,在用户登录后,我需要动态获取分配给他的组的名称。

我该怎么办?

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

使用wp_get_current_user()->roles检索用户所属的组。

$roles = wp_get_current_user()->roles;

if (in_array('group1',$roles)) {
    echo 'Do something here for group 1';
}

答案 1 :(得分:1)

如果您想知道在线用户的角色是什么?

最后,您应该使用以下代码。

$get = wp_get_current_user();
if ( in_array( 'administrator', $get->roles ) )
    // do 1st
if ( in_array( 'editor', $get->roles ) )
    // do 2st
if ( in_array( 'group1', $get->roles ) )
    // do 3st
if ( in_array( 'groupN', $get->roles ) )
    // do N st

答案 2 :(得分:1)

您可以轻松而直接地使用current_user_can()具有特定用户角色(或用户功能)的WordPress专用功能,例如:

if ( current_user_can( 'Group1' ) ) {
    // do 1st
} elseif ( current_user_can( 'Group2' ) ) {
    // do 2st
}
  

WordPress和Woocommerce默认不提供任何用户组功能。您正在为那些用户组使用哪些相关插件。
  您需要在数据库表wp_usermeta中进行搜索,以查看是否为用户分配了“ Group1”或“ Group2”,并为我们提供了用于它的meta_key。

答案 3 :(得分:1)

您几乎做到了。根据文档,wp_get_current_user()返回WP_User对象,该对象具有属性角色(用户所属角色)。

$roles = wp_get_current_user()->roles;

if (in_array("Group1", $roles)) {
   // do 1st
}
if (in_array("Group2", $roles)) {
   // do 2nd
}

希望有帮助