簡體   English   中英

轉到 wp/login.php 時將用戶重定向到上一頁

[英]Redirect user to prev page when going to wp/login.php

我正在使用登錄/注冊彈出插件進行身份驗證流程,但默認表單仍處於打開狀態。 插件鏈接: https://wordpress.org/plugins/easy-login-woocommerce/

此插件需要用戶的名字、姓氏、用戶名、email、密碼,並同意條款和條件。 默認表單不需要上述所有字段。

In order to keep consistent info about all members, I am trying to redirect people who go to /wp-login.php, /wp-login.php?action=register, /wp-login.php?action=lostpassword to previous page並將“#login”添加到該頁面的鏈接。

將#login 或#register 添加到鏈接會彈出登錄/注冊彈出窗口。

我正在嘗試編寫一個可以添加到自定義插件文件的 function。 以下是我到目前為止的內容,但我不確定如何獲取鏈接並將#login 添加到其中。 另外,我不確定我是否使用了正確的鈎子。

function redirect_login_to_prev_page() {

    $restrictions = array(
        '/wp-admin/',
        '/wp-login.php*'
    );

    foreach ( $restrictions as $restriction ) {

        //get link of prev page
        //add #login to that link
        //redirect the user to that link

    }

}
add_action( 'admin_init', 'restrict_admin_with_redirect' );

另外,這是這樣做的好方法還是我應該做其他事情?

感謝您的幫助!

這是應該為您工作的代碼。 將其放在您的子主題的 functions.php 文件中,或使用任何片段插件並將其添加到該插件中。

// Hook the appropriate WordPress action
add_action('init', 'redirect_wp_login');

function redirect_wp_login() {
    // WP tracks the current page - global variable to access it
    global $pagenow;
    
    // Check if we're on the login page
    if($pagenow == 'wp-login.php' && isset($_SERVER['HTTP_REFERER'])) {
        $previous = $_SERVER['HTTP_REFERER'];
        // Redirect with #login added
        wp_redirect($previous.'#login');
        // Stop execution to prevent the page from loading for any reason
        exit();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM