Redirecționare utilizator după delogare
Încerc să creez o pagină de dezabonare pentru membrii mei, dar pentru a vedea formularul de dezabonare, ei trebuie să fie delogați, așa că primul link este:
/wp-login.php?action=logout&_wpnonce=ba51bbcdc3
După ce sunt delogați, trebuie să fie redirecționați către formularul de dezabonare, dar nu pot seta o redirecționare simplă, deoarece aceasta este și pagina de login.

Puteți folosi tag-ul de șablon wp_logout_url()
pentru a genera un link de logout. Puteți specifica URL-ul către care utilizatorul va fi redirecționat ca prim parametru:
wp_logout_url( 'http://example.com' );
Codul de mai sus va genera un URL care arată cam așa: /wp-login.php?action=logout&_wpnonce=ba51bbcdc3&redirect_to=http://example.com/unsubscribe
. Puteți transforma acest URL într-un link astfel:
<a href="<?php echo wp_logout_url( home_url( 'unsubscribe' ) ); ?>" title="Logout">Logout & Unsubscribe</a>
Dacă doriți să folosiți această funcționalitate într-o pagină sau articol, trebuie să creați un shortcode:
function wpse_77939_unsubscribe_link() {
return sprintf(
'<a href="%s" title="Logout">Logout & Unsubscribe</a>',
wp_logout_url( home_url( 'unsubscribe' ) )
);
add_shortcode( 'unsubscribe-link', 'wpse_77939_unsubscribe_link' );
Apoi puteți adăuga [unsubscribe-link]
într-un articol sau pagină unde doriți ca link-ul să apară.
Dacă redirecționați către un alt site în afară de al vostru, trebuie să adăugați acest cod în fișierul functions.php
(înlocuiți example.com
cu domeniul site-ului):
add_filter( 'allowed_redirect_hosts','wpse_77938_allowed_redirect_hosts' );
function wpse_77938_allowed_redirect_hosts( $allowed ) {
$allowed[] = 'example.com';
return $allowed;
}

WordPress include un tag de șablon pe care îl poți utiliza: wp_logout_url()
. Sunt doar câteva linii simple de cod dacă dorești să redirecționezi utilizatorii către o altă adresă URL după ce se deconectează.
Eu am scris un tutorial la sfârșitul anului trecut despre cum să folosești acest tag de șablon. Pe scurt, trebuie să creezi un filtru în functions.php
și apoi să creezi un link de Logout în sidebar.php
.
Dacă redirecționezi către un alt website în afară de al tău, trebuie să adaugi acest cod în fișierul tău functions.php
(înlocuiește example.com
cu domeniul site-ului):
add_filter( 'allowed_redirect_hosts','wpse_77938_allowed_redirect_hosts' );
function wpse_77938_allowed_redirect_hosts($link) {
$link[] = 'example.com';
return $link;
}
Apoi, trebuie să adaugi această linie în fișierul tău sidebar.php
sau oriunde poți executa PHP:
<a href="<?php echo wp_logout_url( 'http://example.com' ); ?>" title="Deconectare">Deconectare</a>
