在手动 "activated" 之前阻止新的 WordPress 用户登录?

Prevent new WordPress users from logging in until manually "activated"?

我正在为 WordPress 开发一个插件,它有 3 个用户组。我需要禁用一些用户并阻止他们登录。我的意思不是阻止他们访问后端。我想阻止他们登录。例如,当他们想要登录时,他们应该会看到一条消息,例如此帐户尚未激活。 谢谢大家。

经过一些搜索并看到类似的问题后,我这样解决了这个问题: 首先为用户状态添加一个用户元数据,这样我们就可以检查用户是否处于活动状态,然后我们可以禁用或启用用户。

add_filter( 'authenticate', 'chk_active_user',100,2);
function chk_active_user ($user,$username) 
   {
     $user_data = $user->data;
     $user_id = $user_data->ID;
     $user_sts = get_user_meta($user_id,"user_active_status",true);
     if ($user_sts==="no")
     {
        return new WP_Error( 'disabled_account','this account is disabled');

      }
      else
      {
       return $user;
      }
        return $user;
     }