2017-02-28 14 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あなたは最高です。出来た。このリダイレクトが発生した場合にのみ、このコードにメッセージを追加してログインページに表示することはできますか? 「チェックアウトに進むには最初にログインする」のようなメッセージが表示されます –

関連する問題