AJAX WordPress登录需要保留在当前页面URL中,而不重定向

时间:2018-08-07 作者:James Paul

目前,我正在wordpress中创建一个基于ajax的登录系统,成功登录后,它会重定向到主页,但我需要的是,它需要停留在用户登录的当前页面上。这是我的函数代码。php。

function ajax_auth_init(){
    wp_register_script(\'validate-script\', get_template_directory_uri() . \'/assets/ajax/jquery.validate.js\', array(\'jquery\') );
    wp_enqueue_script(\'validate-script\');

    wp_register_script(\'ajax-auth-script\', get_template_directory_uri() . \'/assets/ajax/ajax-auth-script.js\', array(\'jquery\') );
    wp_enqueue_script(\'ajax-auth-script\');

    wp_localize_script( \'ajax-auth-script\', \'ajax_auth_object\', array(
    \'ajaxurl\' => admin_url( \'admin-ajax.php\' ),
    \'redirecturl\' => home_url(),
    \'loadingmessage\' => __(\'Sending user info, please wait...\')
    ));

    // Enable the user with no privileges to run ajax_login() in AJAX
    add_action( \'wp_ajax_nopriv_ajaxlogin\', \'ajax_login\' );
    // Enable the user with no privileges to run ajax_register() in AJAX
    add_action( \'wp_ajax_nopriv_ajaxregister\', \'ajax_register\' );
    // Enable the user with no privileges to run ajax_forgotPassword() in AJAX
    add_action( \'wp_ajax_nopriv_ajaxforgotpassword\', \'ajax_forgotPassword\' );
}

// Execute the action only if the user isn\'t logged in
if (!is_user_logged_in()) {
    add_action(\'init\', \'ajax_auth_init\');
}
我试图通过添加重定向url来实现这一点。即使在这之后,它也不起作用,

global $wp;
echo home_url( $wp->request )

1 个回复
最合适的回答,由SO网友:J. Shabu 整理而成

请尝试以下代码,它将为您工作。请将此添加到您的函数中。获取当前页面URL的php

    /*Get Current Url */
 function currentUrl( $trim_query_string = false ) {
    $pageURL = (isset( $_SERVER[\'HTTPS\'] ) && $_SERVER[\'HTTPS\'] == \'on\') ? "https://" : "http://";
    $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
    if( ! $trim_query_string ) {
        return $pageURL;
    } else {
        $url = explode( \'?\', $pageURL );
        return $url[0];
    }
}
请更换主页();使用currentUrl();这肯定会奏效的。

结束

相关推荐

如何在WooCommerce上点击添加到购物车按钮后添加AJAX加载图标

我想在用户单击woocommerce单页上的项目添加到购物车后添加一个加载图标。我正在我的网站中使用以下代码jQuery(\'a.add_to_cart_button\').click(function(){ jQuery(this).append(\'<img src=\"/spinner.gif\" width=\"20px\" height=\"20px\"/>\') }); 但此代码在“添加到购物车”按钮上显示加载图标。我想在网站上显示微调器,就像签出