添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
茫然的长颈鹿  ·  VLOOKUP函数_百度百科·  1 年前    · 
喝醉的骆驼  ·  Maven ...·  2 年前    · 
开朗的楼梯  ·  ROS ...·  2 年前    · 
被表白的罐头  ·  python - ...·  2 年前    · 

用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 个评论
我在下面的答案中添加了一个JavaScript的替代解决方案。
jquery
ajax
wordpress
Lion Hunter
Lion Hunter
发布于 2016-10-27
2 个回答
James Jones
James Jones
发布于 2020-01-16
已采纳
0 人赞同

PHP解决方案

我猜想你是在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解决方案

这是一个纯粹的JavaScript解决方案。

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

document.location.href = ajax_login_object.redirecturl;
document.location.href = window.location.href;
能否请你提供更多信息,我如何在上述jquery函数中使用这个函数。谢谢你,詹姆斯-琼斯
你在PHP端使用它。它不是jQuery。
'wp_localize_script( 'ajax-login-script', 'ajax_login_object', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'redirecturl' => home_url(), 'loadmessage' => __('发送用户信息,请等待...') );'
@LionHunter 你需要用我建议的一个PHP行来替换 home_url() 。或者你可以忽略这一点,使用我刚刚添加的JavaScript解决方案。
@LionHunter 没问题 :), 谢谢你勾选答案。
Naved Khan
Naved Khan
发布于 2020-01-16
0 人赞同
 function ajax_login_init(){
  wp_register_script('ajax-login-script', get_template_directory_uri() . '/ajax-login-script.js', array('jquery'));
  wp_enqueue_script('ajax-login-script');
  $ajax_login_object  ="//".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
  wp_localize_script('ajax-login-script', 'ajax_login_object', array(
    'ajaxurl' => admin_url('admin-ajax.php'),  
    'redirecturl' =>   $ajax_login_object, //this line for same redirect