在手动“激活”之前阻止新的 WordPress 用户登录?

xwo*_*an2 4 php wordpress plugins registration user-management

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

xwo*_*an2 8

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

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;
     }
Run Code Online (Sandbox Code Playgroud)