2017-08-28 13 views
0

私はカスタムログインフォームを使用しています。ここにコードがあります。正常にログインした後、/ portalページにリダイレクトされますが、ログインしたユーザーは再びfalseになります。is_user_logged_in()はwp_signonの後にfalseを返します

$email = $_REQUEST['login_email']; 
     $password = $_REQUEST['login_password']; 

     $args = array(
      'orderby'  => 'login', 
      'order'  => 'ASC', 
      'fields'  => 'all' 
      ); 
     $count=0; 
     $all_users = get_users($args); 
     $login_data['user_password'] = $password; 
     $login_data['user_login'] = $email; 
     $login_data['remember'] = true; 
     $user_verify = wp_signon($login_data, true); 

     $userID = $user_verify->ID; 

     do_action('wp_login', $email); 
     wp_set_current_user($userID, $email); 
     wp_set_auth_cookie($userID, true, false); 


     if (is_wp_error($user_verify)){ 
      $loginerror = true; 
      $errors['login_error']=__("Error in login",'domain'); 
     } 
     else{ 
      $loginSuccess = true; 
      $_SESSION['login_email']=$email; // Initializing Session 
      if(empty($previous_location)) 
      { 

       wp_safe_redirect(home_url('/portal/')); 
      } 
      else{ 
       wp_safe_redirect($previous_location); 
      } 
      exit(); 
     } 

しかし/portalページでは、私はそれはfalseを返しますvar_dump(is_user_logged_in())。ここで何が起きてるの?私が何をした?

+0

私はyourdomain.com/folderに自分のサイトをホストしています – Ninja

+0

wp-config.phpでWP_DEBUGをtrueに設定すると、何らかのエラーや警告が表示されますか? – tousif

+0

私は間違いがない。これはクッキーでリアルになっていますか?原因はwp_sigonの後で、ユーザーの詳細を取得し、 'is_user_logged_in()'もそのページでtrueですが、私がサイトの他のページに移動すると 'is_user_logged_in()'はfalseを返します – Ninja

答えて

0

私は同じ経験を持っていました。私のカスタム登録メカニズムは欠陥であることが判明しました。私は$wpdbオブジェクトと挿入メソッドを使用してカスタムSQLクエリを新しいユーザーを追加していました。

何とかこのアプローチは後者のwp_signonの使用と競合します。カスタム登録メカニズムも作成している場合は、wp_insert_userメソッドに戻り、カスタムカラムなどを更新して$wpdb->updateとしてください。

関連する問題