绕过WooCommerce My-Account登录进行自定义登录

时间:2017-06-02 14:08:09

标签: php wordpress redirect woocommerce hook-woocommerce

我正在创建一个仅限批发会员的woocommerce网站。到目前为止,我已经设法通过使用我在堆栈交换中找到的这些代码为非登录用户创建重定向到我的帐户页面来锁定所有的woocommerce -

add_action( 'template_redirect', 'wc_redirect_non_logged_to_login_access');
function wc_redirect_non_logged_to_login_access() {

    if ( !is_user_logged_in() && ( is_woocommerce() || is_shop() || 
is_cart() || is_checkout() ) ) {
        wp_redirect( get_permalink( 
get_option('woocommerce_myaccount_page_id')) );
        exit();
    }
}

它完美无缺,但我想使用我创建的自定义登录页面。 www.example.com/customlogin - 我在哪里/如何将其插入上述代码?我尝试但是语法错误,并且花了半天时间锁定了我的网站大声笑。

接下来,我需要将自定义登录页面绑定到woocommerce my-account页面,以便我可以绕过woocommerce隐藏在同一页面上的代码中的默认登录。所以基本上如果一个"非登录用户"点击"我的帐户"链接他们将被带到自定义登录页面。通过这种方式,我可以单独编辑登录页面和我的帐户页面,当它们在同一页面上时,我无法真正做到,并且我的所有编辑效果都是同时进行的。

感谢。

1 个答案:

答案 0 :(得分:1)

您应该尝试以下代码来解决您的两个要求:

add_action( 'template_redirect', 'wc_redirect_non_logged_to_login_access');
function wc_redirect_non_logged_to_login_access() {

    if ( ! is_user_logged_in() && ( is_woocommerce() || is_shop() ||
is_cart() || is_checkout() || is_account_page() ) ) {
        wp_redirect( home_url( '/customlogin' ) );
        exit();
    }
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

  

要将条件扩展到我的帐户页面,我使用条件WC标记: is_account_page()
  要重定向到自定义表单,请使用: wp_redirect( home_url( '/customlogin' ) );

此代码经过测试并正常运行

相关问题