WooCommerce 登录区域重定向到默认的 WordPress 登录表单

Raz*_*ceu 6 php wordpress user-accounts woocommerce hook-woocommerce

如果用户未登录,Woocommerce 的“我的帐户”页面会显示注册/登录表单,但我尝试使用默认的 WordPress 登录/注册页面 (wp-login.php)。

如果用户未登录,如何使“/my-account”重定向到“wp-login.php”?

谢谢。

Loi*_*tec 7

通常,Woocommerce“客户”用户角色无法访问 WordPress 的管理员。但是您可以使用带有混合条件的钩子函数woocommerce_before_customer_login_form将用户重定向到经典的 WordPress 登录区域,如下所示:

add_action( 'woocommerce_before_customer_login_form', 'redirect_customer_login_access');
function redirect_customer_login_access() {

    // Here the conditions (woocommerce my account pages and unlogged user)
    if( is_account_page() && !is_user_logged_in()){

        // Define here the redirection after login (optional)
        $redirection_after = site_url( '/shop/' );

        // Redirecting to Wordpress login area
        wp_redirect( wp_login_url( $redirection_after ) );

        // always use exit after wp_redirect() function.
        exit; 
    }
}
Run Code Online (Sandbox Code Playgroud)

代码位于活动子主题的 function.php 文件中(活动主题或任何插件文件中)。

这段代码已经过测试并且可以工作。