2017-02-28 9 views
3

In WooCommerce versuche ich eine Möglichkeit zu finden, die Woocommerce-Checkout-Seite für nicht angemeldete Benutzer zu deaktivieren, ODER wenn sie versuchen, Checkout werden sie auf die Anmeldeseite umgeleitet.Checkout-Seite für nicht eingeloggte Benutzer deaktivieren

Sie sollten sich also zuerst anmelden, um ihre Kasse fortsetzen zu können.

Ist das möglich?

Dank

Antwort

4

ist möglich, nicht eingeloggte Kunden zu umleiten, dass mit diesem Code zur Kasse zuzugreifen versuchen:

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

Dann können Sie zeigen eine individuelle Mitteilung im Warenkorb Seite mit einem Knopf verbunden Bereich einzuloggen , um Kundenfrustration zu vermeiden. Ist besser zu warnen Kunde vor, als nach.

// 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'); 
    } 
} 

-Code geht in function.php Datei Ihres aktiven Kind Thema (oder Thema) oder auch in jeder Plugin-Datei.

Der Code ist getestet und funktioniert.

+0

Vielen Dank, @LoicTheAztec du bist der Beste. Es funktionierte. Kann ich diesem Code eine Nachricht hinzufügen, die nur auf der Anmeldeseite angezeigt wird, wenn diese Umleitung erfolgt? Eine Nachricht wie "Log dich zuerst ein, um zur Kasse gehen zu können" –

Verwandte Themen