2016-05-06 11 views
0

私はwordpress multisiteを使用してajaxログインを開発しようとしていますが、何らかの理由でそれを動作させることはできません。 私は自分のスクリプトに認証情報を送り、正しいユーザーデータを返します。問題は、 '_nopriv'を返さずに別のAjax呼び出しを行うとfalseを返すため、WPがユーザーを覚えていないかのようにログインしていないということです。私はJSから/admin/wp-admin/admin-ajax.phpに必要なブログのURLを呼び出すマルチプレースを使用したWordpress ajaxログイン

add_action('wp_ajax_admin_login', 'admin_login'); 
add_action('wp_ajax_nopriv_admin_login', 'admin_login'); 
function admin_login() { 
     $succ = true; 
     $creds = array(
      'user_login' => $_POST["user_login"], 
      'user_password' => $_POST["user_pass"], 
      'remember' => true 
     ); 

     $user = wp_signon($creds); 

     if (is_wp_error($user)) { 
      $succ = false; 
      $user = "Login failed!"; 
     } 
     else{ 
      do_action('wp_signon', $user->user_login); 
      wp_set_auth_cookie($user->ID); 
      wp_set_current_user($user->ID, $_POST["user_login"]); 
     } 
     echo json_encode(array('success' => $succ, 'currUser' => wp_get_current_user())); 
     wp_die(); 
} 

は、ここに私のPHPコードです。 助けてください!

答えて

0

wp_signon$credの配列を渡す必要があります。 'user_login'には、ユーザーのユーザー名が含まれています。

do_action('wp_signon', $user->user_login); 

代わり

do_action('wp_signon', $creds); 
+0

残念ながら、それは解決しません –

関連する問題