繁体   English   中英

使用多站点的Wordpress Ajax登录

[英]Wordpress ajax login using multisite

我正在尝试使用wordpress多站点开发ajax登录,但是由于某些原因,我无法使其正常运行。 我将凭据发送到脚本中,看起来还可以,它返回了正确的用户数据。 问题是,当我使用钩子执行另一个没有'_nopriv'的ajax调用时,它返回false,因此用户未登录,就好像WP不记得该用户一样。

这是我的PHP代码:

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();
}

我用js中的/admin/wp-admin/admin-ajax.php调用所需博客的URL。 请帮忙!

您需要在wp_signon传递$cred数组。 'user_login'仅包含用户的用户名。

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

代替

do_action('wp_signon', $creds);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM