在 Woocommerce 中获取并使用用户组名

Get and use the user group name in Woocommerce

我只将 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

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

我该怎么做?

感谢任何帮助。

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

$roles = wp_get_current_user()->roles;

if (in_array('group1',$roles)) {
    echo 'Do something here for group 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

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

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

WordPress and Woocommerce don't provide any Usergroup functionality by default. What related plugin are you using for those Usergroups.
You need to search in the database table wp_usermeta to see if 'Group1' or 'Group2' are assigned to users and give us the meta_key used for it.

你几乎成功了。根据文档,wp_get_current_user() return WP_User 对象具有属性 roles(用户所属的角色)。

$roles = wp_get_current_user()->roles;

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

希望对您有所帮助