我添加了代码,将用户从WP登录页面转移到functions.php文件中的woocomece登录页面,但现在登录后会出现一个空白屏幕

我添加了代码,将用户从WP登录页面转移到functions.php文件中的woocomece登录页面,但现在登录后会出现一个空白屏幕,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我正在使用OceanWP主题、WP作业管理器和woocommerce插件构建WordPress网站 由于许多WP job manager链接将用户转移到默认的Wordpress登录页面,我希望所有用户都使用woocommerce登录页面登录,因此我在functions.php文件中添加了以下代码: /** * direct users to woocommerce login page */ add_filter( 'login_url', 'my_login_page', 10, 2 );

我正在使用OceanWP主题、WP作业管理器和woocommerce插件构建WordPress网站

由于许多WP job manager链接将用户转移到默认的Wordpress登录页面,我希望所有用户都使用woocommerce登录页面登录,因此我在functions.php文件中添加了以下代码:

/**
* direct users to woocommerce login page
*/

add_filter( 'login_url', 'my_login_page', 10, 2 );
function my_login_page( $login_url, $redirect ) {
    return home_url( '/my-account/?redirect_to=' . $redirect );
}

/** Log in redirect to previous page by logicdigger **/
// start global session for saving the referer url
function start_session() {
    if(!session_id()) {
        session_start();
    }
}
add_action('init', 'start_session', 1);

// get the referer url and save it to the session
function redirect_url() {
    if (! is_user_logged_in()) {
        $_SESSION['referer_url'] = wp_get_referer();
    } else {
        session_destroy();
    }
}
add_action( 'template_redirect', 'redirect_url' );

//login redirect to referer url
function login_redirect() {
    if (isset($_SESSION['referer_url'])) {
        wp_redirect($_SESSION['referer_url']);
    } else {
        wp_redirect(home_url());
    }
}
add_filter('woocommerce_login_redirect', 'login_redirect', 1100, 2);
它似乎工作正常,将所有用户转移到woocommerce登录页面,但我的问题是,当用户使用woocommerce登录页面登录时,他们会看到一个空白的白色屏幕,即使URL是“www.mywebsite.com/my account”,这是我的帐户页面的正确URL

…但是当我刷新页面时,页面会重定向到用户以前所在的页面,这就是我希望它工作的方式

我只是想知道登录后的空白屏幕可能是什么原因?

我已清除缓存并重试,但同样的情况也发生了。我真的不知道是什么引起的

非常感谢

…但是当我刷新页面时,页面会重定向到用户以前所在的页面,这就是我希望它工作的方式

我测试了你的代码片段,得到了相同的结果

问题: 使用WooCommerce登录表单后,为什么要使用其余函数来处理会话?我认为WooCommerce是为您而做的,因此我考虑使用:

/**
* direct users to woocommerce login page
*/

add_filter( 'login_url', 'my_login_page', 10, 2 );
function my_login_page( $login_url, $redirect ) {
    return home_url( '/my-account/?redirect_to=' . $redirect );
}

应该足够了,不(?)

我想你应该检查一下日志。嗨,谢谢你。我之所以使用其他功能,是因为woocommerce登录总是让用户在登录后进入“我的帐户”页面,除非他们正在执行签出过程,但由于我使用wp job manager,我希望用户返回“发布作业”页面,例如,如果他们在登录前尝试发布作业。如果这有道理的话。所以我需要这个场景的其他功能。>f他们试图在登录之前发布作业。如果这有道理的话。所以我需要这个场景的其他函数完全有道理。怎么样:?它使用
login\u redirect
,这听起来像是更好的过滤器。