簡體   English   中英

非登錄用戶 Woocommerce,重定向

[英]Non logged in users Woocommerce, redirection

我正在使用 Woocommerce 在線開店,我的客戶問我他不希望人們能夠注冊,他將為他的每個客戶創建一個用戶名和密碼。 這樣他就可以控制誰在他的商店里買東西。

所以我進入了 Woocommerce 並在結賬和任何地方禁用注冊,以及允許客人下訂單的選項。 一切正常,除了當有人嘗試下訂單時,當他注銷時,當他嘗試轉到結帳頁面時,它只會顯示一條未格式化的消息,上面寫着“您必須登錄才能下訂單”。 在嘗試訪問結帳時,有沒有辦法將未登錄的客戶重定向到登錄頁面?

可能這段代碼可以更緊湊、簡單和方便:

add_action('template_redirect','check_if_logged_in');
function check_if_logged_in() {
    if(!is_user_logged_in() && is_checkout())
        wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id') ) );
}

此代碼位於活動子主題(或主題)的 function.php 文件或任何插件文件中。

此代碼經過測試且功能齊全。


參考: 基於購物車的 WooCommerce 登錄重定向

在functions.php中使用以下代碼

add_action( 'template_redirect', 'redirect_user_to_login_page' );

function redirect_user_to_login_page(){
    // Make sure your checkout page slug is correct
    if( is_page('checkout') ) {
        if( !is_user_logged_in() ) {
            // Make sure your login page slug is correct in below line
            wp_redirect('/my-account/');
        }
    }
}

我設法自己做! 但是,如果有人有更清晰的代碼可以這樣做,我願意接受建議。

我所做的是將以下代碼粘貼到子主題的functions.php文件中:

 add_action('template_redirect','check_if_logged_in'); function check_if_logged_in() { if(!is_user_logged_in() && is_checkout()) { $url = add_query_arg( 'redirect_to', get_permalink($pagid), site_url('/my-account/') ); wp_redirect($url); exit; } }

謝謝親切的問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM