2017-11-27 27 views
0

WordpressにAJAX呼び出しでコスチュームログインを構築しようとしています。私は右のエコーを取得するPHP関数からwp_signon()を削除します。しかし、wp_signon()を追加すると、常にHTMLでログインページ全体が返されます。私は何が間違っているのか分かりません。そして、ログインを機能させることができません。Wordpress wp_signon()がajax呼び出しで動作しない

助けてください!

JS

 $.ajax({ 
     method: 'POST', 
     url: '/wp-admin/admin-ajax.php', 
     dataType: 'json', 
     data: { 
      'action': 'getLoggedIn', 
      'user_name': user_name, 
      'user_password': user_password, 
      'user_remember': user_remember 
     }, 
     success: function(response) { 

      if (response === 'ok') { 
       window.location = '/app/'; 

      } 

     }, 
     error: function(){} 
    }); 

PHP

function getLoggedIn() { 

global $wpdb; 

// Check if users is already logged in 
if (is_user_logged_in()) { 
    echo 'You are already logged in'; 
    die; 
} 

//We shall SQL escape all inputs 
$username = $wpdb->escape($_REQUEST['user_name']); 
$password = $wpdb->escape($_REQUEST['user_password']); 
$remember = $wpdb->escape($_REQUEST['user_remember']); 

$creds = array(); 
$creds['user_login'] = $username; 
$creds['user_password'] = $password; 
$creds['remember'] = $remember; 
$user_signon = wp_signon($creds, false); 

// Check if error 
if (is_wp_error($user_signon)) { 
    echo $user_verify->get_error_code(); 
    exit(); 
} else { 
    echo 'ok'; 
    exit; 
} 

die(); 
} 

add_action('wp_ajax_getLoggedIn', 'getLoggedIn'); 
add_action('wp_ajax_nopriv_getLoggedIn', 'getLoggedIn'); 

答えて

0

問題がwp_signonをwassent()。それはページをリダイレクトした他のWordpressのアクションでした。これは:

add_action('wp_login_failed', 'login_failed'); 
0

同じ状況に巻き込まれました。そのwp_login_failedアクションを削除しましたか、それともどうやって解決しましたか?

+0

はいリダイレクト操作を削除したとき、すべてが機能しました – user2673664

関連する問題