最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Can enter wp-admin when logged in with custom ajax

programmeradmin3浏览0评论

I logged in my site with custom ajax. Then try to connect my wp-admin, the page redirect me to login.php

My custom ajax function in php;

function ajax_login(){
check_ajax_referer( 'ajax-login-nonce', 'security' );
$info = array();
$info['user_login'] = $_POST['username'];
$info['user_password'] = $_POST['password'];
$info['remember'] = true;
if((trim($info['user_login']) == "" || $info['user_password'] == "" || strlen(trim($info['user_login'])) < 3 || strlen($info['user_password']) < 6 )){
    echo json_encode(array('loggedin'=>false, 'message'=>__('Error')));
}else{
  $user_signon = wp_signon( $info, false );
  if ( is_wp_error($user_signon) ){
      echo json_encode(array('loggedin'=>false, 'message'=>__('Error')));
  } else {
      wp_set_current_user($user_signon->ID);
      echo json_encode(array('loggedin'=>true, 'message'=>__('Error')));
  }
}
  die();
}


  function ajax_auth_init(){
  add_action( 'wp_ajax_nopriv_ajaxlogin', 'ajax_login' );
  }

 if (!is_user_logged_in()) {
 add_action('init', 'ajax_auth_init');
 }

Why I can't connect directly to wp-admin?

I logged in my site with custom ajax. Then try to connect my wp-admin, the page redirect me to login.php

My custom ajax function in php;

function ajax_login(){
check_ajax_referer( 'ajax-login-nonce', 'security' );
$info = array();
$info['user_login'] = $_POST['username'];
$info['user_password'] = $_POST['password'];
$info['remember'] = true;
if((trim($info['user_login']) == "" || $info['user_password'] == "" || strlen(trim($info['user_login'])) < 3 || strlen($info['user_password']) < 6 )){
    echo json_encode(array('loggedin'=>false, 'message'=>__('Error')));
}else{
  $user_signon = wp_signon( $info, false );
  if ( is_wp_error($user_signon) ){
      echo json_encode(array('loggedin'=>false, 'message'=>__('Error')));
  } else {
      wp_set_current_user($user_signon->ID);
      echo json_encode(array('loggedin'=>true, 'message'=>__('Error')));
  }
}
  die();
}


  function ajax_auth_init(){
  add_action( 'wp_ajax_nopriv_ajaxlogin', 'ajax_login' );
  }

 if (!is_user_logged_in()) {
 add_action('init', 'ajax_auth_init');
 }

Why I can't connect directly to wp-admin?

Share Improve this question asked Jun 12, 2017 at 5:27 Abuzer KillibacakAbuzer Killibacak 578 bronze badges 2
  • Reload the page on ajax success after use is logged in. Write reload script below wp_set_current_user($user_signon->ID); this line in code. – Jiten Gaikwad Commented Jun 12, 2017 at 6:13
  • I'm already using that. But I got it. See my answer. Thank you. – Abuzer Killibacak Commented Jun 12, 2017 at 6:14
Add a comment  | 

1 Answer 1

Reset to default 2

I got it. Just I need to change

$user_signon = wp_signon( $info, false );

with

$user_signon = wp_signon( $info, is_ssl() ? true : false );
发布评论

评论列表(0)

  1. 暂无评论