2017-02-28 64 views
3

在WooCommerce中,我試圖找到一種方法來禁用非登錄用戶的woocommerce結帳頁面,或者當他們嘗試結帳他們將重定向到登錄頁面。爲未登錄用戶禁用結帳頁面

所以他們應該先登錄才能繼續結帳。

這可能嗎?

感謝

回答

4

可以重定向非登錄用戶,試圖訪問這些代碼籤:

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

    // Here the conditions (woocommerce checkout page and unlogged user) 
    if(is_checkout() && !is_user_logged_in()){ 

     // Redirecting to your custom login area 
     wp_redirect(get_permalink(get_option('woocommerce_myaccount_page_id'))); 

     // always use exit after wp_redirect() function. 
     exit; 
    } 
} 

然後你就可以顯示在購物車頁面自定義通知與鏈接登陸區域的按鈕,以避免客戶的挫折。 最好提醒客戶之前,比之後。

// Displaying a message on cart page for non logged users (Optional) 
add_action('woocommerce_before_cart', 'customer_redirected_displaying_message'); 
function customer_redirected_displaying_message() { 
    if(!is_user_logged_in()){ 
     // HERE Type your displayed message and text button 
     $message = __('To access checkout, you need first to be logged in', 'woocommerce'); 
     $button_text = __('Login area', 'woocommerce'); 

     $cart_link = get_permalink(get_option('woocommerce_myaccount_page_id')); 

     wc_add_notice( $message . '<a href="' . $cart_link . '" class="button wc-forward">' . $button_text . '</a>', 'notice'); 
    } 
} 

代碼放在您的活動子主題(或主題)的function.php文件或也以任何插件文件。

該代碼已經過測試和工作。

+0

非常感謝,@LoicTheAztec你是最棒的。有效。只有當此重定向發生時,我纔可以向此代碼添加消息以顯示在登錄頁面中?諸如「首先登錄以能夠進行結賬」的消息 –

相關問題