我仅将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
组的名称不会更改,因此我将它们作为字符串放入代码中。但是,在用户登录后,我需要动态获取分配给他的组的名称。
我该怎么办?
感谢您的帮助。
答案 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
}
希望有帮助