拒绝用户角色在注册后登录

时间:2017-04-16 作者:Arnolddew

我有一个网站,客户可以在那里注册自己(他们得到一个用户角色“待定”)。然而,我想要的是,在注册之后,这些用户角色不能自动登录或直接注销。他们也必须不能登录。因此,必须拒绝这些用户角色的登录。

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

你要做的是authenticate 钩子,检查用户是否有pending 角色,如果是,则抛出错误。

//* Add filter to the authenticate hook
add_filter( \'authenticate\', \'wpse_263762_authenticate\', 20, 3 );
function wpse_263762_authenticate( $user, $username, $password ) {
  //* Check if the user has the pending role
  if( ! is_wp_error( $user ) && in_array( \'pending\', $user->roles ) ) {
    //* Throw an error
    $error = new WP_Error();
    $errorMessage = __( \'Your error message goes here.\' );
    $error->add( 401, $errorMessage );
    return $error;
  }
  //* Or return the user
  return $user;
}

相关推荐

Change default login auth

我将增强我的WordPress身份验证页面。我的想法很简单,就是更改过程以检查密码,就像使用用户名或电子邮件登录的默认过程一样。我已经更改了数据库,添加了额外的字段“code”:我的目标是:the user can login with your username or email and with your password or code.然而,我不知道哪个部分的编码是用来验证密码的,因为我想参考现有的编码。