wake-up-neo.com

woocommerce und is_user_logged_in () leiten nicht zur Homepage weiter

Ich verwende derzeit Woocommerce und möchte keine angemeldeten Benutzer auf die Startseite umleiten. Ich habe jedoch ein paar Probleme zu bestimmen, wo ich dies implementieren soll

Ich habe nachgeforscht und festgestellt, dass ich mithilfe von is_user_logged_in () sehen kann, ob der Benutzer angemeldet ist.

Ich habe versucht, in der woocommerce/woocommerce-functions.php zu implementieren

// When default permalinks are enabled, redirect shop page to post type archive url
    if (is_user_logged_in() && isset($_GET['page_id']) && $_GET['page_id'] > 0 && get_option( 'permalink_structure' )=="" && $_GET['page_id'] ==     woocommerce_get_page_id('shop') ) :
        wp_safe_redirect( get_post_type_archive_link('product') );
        exit;
    endif;

die Seite kann trotzdem angezeigt werden

2
bugz

Sie möchten Ihren Code am oberen Rand der Seitenvorlagen für die Woo-Seiten einfügen, auf die sich die Umleitung auswirken soll, und nicht für die Funktionsdatei. Wenn Sie beispielsweise Benutzer umleiten möchten, wenn sie versuchen, auf eine einzelne Produktseite zuzugreifen, können Sie sie oben auf der Seite plugins-> woocommerce-> templates-> single-product.php platzieren.

Beim Bearbeiten von Vorlagen würde ich jedoch empfehlen, eine Kopie zu erstellen und sie in Ihrem Designverzeichnis abzulegen, damit Änderungen, die Sie vorgenommen haben, beim Aktualisieren von Woo nicht überschrieben werden. Also für das obige Beispiel (angewendet auf mein Thema). Ich würde single-product.php kopieren und in die themes-> agency-Datei einfügen und dann dort die Änderungen an dieser Datei vornehmen. Ihr Design verwendet diese Datei dann immer vor der in der Woo-Vorlagendatei.

0
Kyle

Zunächst einmal bearbeiten Sie niemals andere Plugins oder WordPress-Kerndateien.

Verwenden Sie auch geschweifte Klammern anstelle einer hübschen Formatierung, da die hübsche Formatierung die IDE - Code-Hervorhebung, den Klammerabgleich, die Syntaxprüfung und andere nützliche Tools unterbricht

Also diesen Code eingeben:

// When default permalinks are enabled, redirect shop page to post type archive url
if (is_user_logged_in() && isset($_GET['page_id']) && $_GET['page_id'] > 0 && get_option( 'permalink_structure' )=="" && $_GET['page_id'] ==     woocommerce_get_page_id('shop') ) {
    wp_redirect( get_post_type_archive_link('product') );
    die();
}

Entweder in:

  • oben in der functions.php
  • Ein dediziertes Plugin
  • Beim Init-Hook-Anruf
1
Tom J Nowell

Verwenden Sie den Code functions.php:

add_filter('woocommerce_login_redirect', 'wc_login_redirect');

function wc_login_redirect( $redirect_to ) {
     $redirect_to = 'https://www.example.com/';
     return $redirect_to;
}
0