3
在WooCommerce中,我試圖找到一種方法來禁用非登錄用戶的woocommerce結帳頁面,或者當他們嘗試結帳他們將重定向到登錄頁面。爲未登錄用戶禁用結帳頁面
所以他們應該先登錄才能繼續結帳。
這可能嗎?
感謝
在WooCommerce中,我試圖找到一種方法來禁用非登錄用戶的woocommerce結帳頁面,或者當他們嘗試結帳他們將重定向到登錄頁面。爲未登錄用戶禁用結帳頁面
所以他們應該先登錄才能繼續結帳。
這可能嗎?
感謝
可以重定向非登錄用戶,試圖訪問這些代碼籤:
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文件或也以任何插件文件。
該代碼已經過測試和工作。
非常感謝,@LoicTheAztec你是最棒的。有效。只有當此重定向發生時,我纔可以向此代碼添加消息以顯示在登錄頁面中?諸如「首先登錄以能夠進行結賬」的消息 –