2017-04-26 119 views
1

在WooCommerce中,我將重定向非登錄用戶到我的帳戶頁面訪問任何WooCommerce頁面時。但是當用戶登錄後(在我的帳戶頁面中),當我嘗試訪問同一個woocommerce頁面時,它會將我重定向到我的帳戶頁面。
但是,當我訪問任何其他WooCommerce頁面的工作完美。如果未登錄,將WooCommerce頁面重定向到我的帳戶頁面(問題)

我使用這個代碼用於此目的:

<?php 
    if (!is_user_logged_in()) { 
     if(is_woocommerce() || is_shop() || is_cart() || is_checkout()) { 

      wp_redirect(get_permalink(get_option('woocommerce_myaccount_page_id'))); 
      exit(); 
     } 
    } 
?> 

我認爲問題是,它在高速緩存或其他重定向問題存儲的東西,所以當用戶訪問相同的URL它重定向到我的帳戶時已登錄。

我該如何解決這個問題。

感謝

回答

1

你應該嘗試嵌入你的代碼在template_redirect行動鉤勾住了自定義函數:

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(); 
    } 
} 

此代碼放在你的活躍兒童主題的function.php文件(或主題)或任何插件文件。

此代碼對WooCommerce測試v2.6.x +爲V3.0.x和工作

+0

此代碼,我在我的孩子主題已經測試過,但是當我登錄成功宇商貿還我當時在目錄頁上轉到我的賬戶頁面(並且它不是每次都會發生)。 – Ket

+0

@Ket我已經在兩個woocommerce版本上測試了這個代碼,多次,我沒有這個問題。所以在你的主題或者某個插件中有一些特殊的東西,就是這個問題...... – LoicTheAztec