首页 文章

使用ajax验证登录后将用户重定向到他所在的同一页面

提问于
浏览
0

我正在使用此函数来验证我的wordpress网站的用户(ajax登录) .

// Perform AJAX login on form submit
    $('form#vbp-login-form').on('submit', function(e){
        $('form#vbp-login-form p.status').show().text(ajax_login_object.loadingmessage);
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: ajax_login_object.ajaxurl,
            data: { 
                'action': 'ajaxlogin', //calls wp_ajax_nopriv_ajaxlogin
                'username': $('form#vbp-login-form #username').val(), 
                'password': $('form#vbp-login-form #password').val(), 
                'security': $('form#vbp-login-form #security').val() },
            success: function(data){
                $('form#vbp-login-form p.status').text(data.message);
                if (data.loggedin == true){
                    document.location.href = ajax_login_object.redirecturl;

                }
            }
        });
        e.preventDefault();
    });

登录后,用户被重定向到主页而不是他所在的页面 . 我希望将用户重定向到他来自的同一页面 . 我怎样才能做到这一点 ?

任何帮助表示赞赏 .

1 回答

  • 0

    PHP SOLUTION

    我假设您正在PHP中形成 ajax_login_object 数组 . 可能使用

    wp_localize_script( 'your_script', 'ajax_login_object' , $ajax_login_object );
    

    这是通常的WordPress方法,无论如何都将数据传递给前端脚本 .

    试试这个PHP:

    $ajax_login_object['redirecturl'] ="//".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    

    或者从http://www.insertcart.com/get-current-page-url-in-wordpress/试试这个:

    $ajax_login_object['redirecturl'] = esc_url(the_permalink());
    

    http://mekshq.com/get-current-page-url-wordpress/的另一个选择是:

    global $wp;
    $ajax_login_object['redirecturl'] = home_url(add_query_arg(array(),$wp->request));
    

    JavaScript Solution

    这是一个纯JavaScript解决方案 .

    在JS window.location.href 中返回页面的当前URL . 所以在你的代码中你可以替换

    document.location.href = ajax_login_object.redirecturl;
    

    document.location.href = window.location.href;
    

相关问题