Sobald sich ein Benutzer auf seiner Seite „Mein Konto“ auf WooCommerce befindet, möchte ich, dass er sich abmeldet und zu meiner Homepage weitergeleitet wird, anstatt auf der Anmeldeseite zu landen.
WooCommerce – Mein Konto – Abmelden und zur Startseite weiterleiten
Rich72
mujunur
add_action('wp_logout','auto_redirect_after_logout');
function auto_redirect_after_logout(){
wp_redirect( home_url() );
exit();
}
-
Ich habe dies in meine function.php-Datei hinzugefügt. Als ich auf „Mein Konto“ klickte, wurde die Anmeldeseite nicht ausgelöst. Tatsächlich ist nichts abgefeuert worden. Ist es nicht so einfach, diesen Code in die Datei function.php einzufügen?
– Rich72
26. Februar 2019 um 11:26 Uhr
-
Ich habe den Code in mein Child-Theme eingefügt. apexgray.co.uk/my-account
– Rich72
26. Februar 2019 um 11:30 Uhr
-
Ich werde den Code wieder in die Datei function.php einfügen und Sie wissen lassen …
– Rich72
26. Februar 2019 um 11:32 Uhr
-
Vielleicht war meine Frage nicht klar. Wenn sich der Benutzer in sein Konto eingeloggt hat und fertig ist, möchte ich idealerweise, wenn er auf Abmelden klickt, dass er zur Startseite geht.
– Rich72
26. Februar 2019 um 11:37 Uhr
-
Ich denke, meine ursprüngliche Frage war verwirrend …!
– Rich72
26. Februar 2019 um 11:38 Uhr
Nur um die ursprüngliche Antwort zu ergänzen, kann die Verwendung von exit zum Beenden des Skripts Woocommerce daran hindern, nach dem Abmelden die erforderlichen Schritte auszuführen, z. B. das Löschen der Cookies (Warenkorbelemente in Cookies). Ihre beste Wette ist also die Verwendung logout_url
so filtern.
function redirect_after_logout($logout_url, $redirect) {
return $logout_url . '&redirect_to=' . home_url();
}
add_filter('logout_url', 'redirect_after_logout', 10, 2);
Getestet in Woocommerce Version 5.4.1 ✅
Ahmet Kaptan
Wenn Sie herausfinden, wie Sie die WooCommerce-Abmeldebestätigung umgehen können, können Sie Folgendes tun:
function wooHook_woocommerce_logout_bypass() {
global $wp;
if ( isset( $wp->query_vars['customer-logout'] ) ) {
wp_redirect( str_replace( '&', '&',
wp_logout_url( wc_get_page_permalink( 'hesabim' ) ) ) );
exit;
}
}
add_action( 'template_redirect', 'wooHook_woocommerce_logout_bypass' );