Wordpress:为角色中的所有用户设置一个密码,现有+未来注册

Wordpress: Set one password for all users in a role, existing + future signups

一位客户希望我为特定角色 (Attendee) 的所有用户设置一个密码。 I/they 知道这不是明智的安全做法,但必须这样做。这个角色基本没什么能力,网站里面也没有特别敏感的数据。

我已经通过

为个人用户做到了这一点
wp_set_password( 'password', 1 );

如何将相同的功能应用到所有具有“与会者”角色的用户? (真实密码不会是"password")

如何获取所有具有该角色的用户并应用密码?

$attendees = get_users('role=Attendee');
foreach ($attendees as $user) {
    wp_set_password('password', $user->ID);
}

为了保险起见,在执行此操作之前一定要备份您的数据库。

或者,更改一个用户的密码,复制用户数据表中的密码散列,并将具有相同角色的所有用户更新为该密码。但是上面的代码在 PHP 中应该也能正常工作。

当然还有以后创建的Attendees的问题。为此,您可以在 functions.php 文件中添加一个挂钩:

https://developer.wordpress.org/reference/hooks/added_existing_user/

但是,在管理员创建配置文件后立即覆盖用户密码是一种奇怪的行为。希望您只需要编辑现有用户。