区分配置文件用户和管理员用户ID/获取正在编辑的用户的ID

时间:2013-04-17 作者:emeraldjava

在我的网站的用户配置文件页面上,我希望允许管理员角色用户能够编辑订阅服务器角色用户的特定用户元字段。

如何区分这两个用户ID。

当前登录的用户是管理员用户

get_current_user(); // returns the admin role user id
但我需要能够访问订户ID来设置元数据

update_user_meta($subscriber_user_id,"name","value");
如何填充$subscriber_user_id 值是否正确?

1 个回复
最合适的回答,由SO网友:Johannes Pille 整理而成

在“个人资料页”,即。user-edit.php 在管理后端,当前正在编辑的配置文件的用户ID位于$user_id 全球的

因此:

global $user_id;
update_user_meta( $user_id, \'key\', \'value\' );
是你所寻找的本质。

仅当您具有edit_users 分配给管理员以外的角色的功能,默认情况下并非如此。

如果您希望管理员只能够保存订阅者的元数据,而拥有其他角色的用户,那么您显然必须在保存之前检查编辑的用户角色。

因此,为了完整性,这两种检查都是一样的:

global $current_user, $user_id;

/* user object of user being edited */
$edited_user = new WP_User( $user_id );

/* verify both users roles */
if (
    in_array( \'administrator\', $current_user->roles ) &&
    in_array( \'subscriber\', $edited_user->roles )
) {
    update_user_meta( $edited_user->ID, \'key\', \'value\' );
}

结束

相关推荐

当我访问我的网站/wp-admin时什么也没有出现?我应该查找哪些文件?

我的托管公司(godaddy)告诉我,有人入侵了我的wordpress管理员登录,并在文件系统中放入垃圾。我的网站已关闭。当我尝试使用mywebsite获取文件时,什么都没有出现。com/wp管理员(我用来管理我的文件)。我不是一个专家,我已经从外部机构获得了该网站。