wp登录反对用户角色

时间:2016-11-11 07:40:08

标签: ajax wordpress

我正在使用此代码 -

$info = array();
    $info['user_login'] = $_POST['username'];
    $info['user_password'] = $_POST['password'];
    $info['remember'] = true;

    $user_signon = wp_signon( $info, false );

    if ( is_wp_error($user_signon) ){
        echo json_encode(array('loggedin'=>false, 'message'=>__('Wrong username or password.')));
    } else {
        echo json_encode(array('loggedin'=>true, 'message'=>__('Login successful, redirecting...')));
    }

    die();

登录工作正常。但是我如何限制具有编辑角色的用户在此功能中,以便我可以检查角色,如果它在那里,那么我将在json中传递自定义错误消息?

1 个答案:

答案 0 :(得分:1)

要限制特定用户角色,首先应检查用户角色。如果用户具有受限制的角色,则只是不执行登录操作并通过错误消息,否则通过wp_signon登录用户。这是完整的代码应该是什么样的。

$info                  = array();
$info['user_login']    = $_POST['username'];
$info['user_password'] = $_POST['password'];
$info['remember']      = true;
$user                  = get_user_by( 'login', $info['user_login'] );

if ( $user && in_array( 'editor', (array) $user->roles ) ) {
  echo json_encode(array('loggedin'=>false, 'message'=>__('Editors are restricted.')));

}else{

  $user_signon = wp_signon( $info, false );

  if ( is_wp_error($user_signon) ){
    echo json_encode(array('loggedin'=>false, 'message'=>__('Wrong username or password.')));
  } else {
    echo json_encode(array('loggedin'=>true, 'message'=>__('Login successful, redirecting...')));
  }

}