Come disconnettersi senza conferma "Vuoi davvero disconnetterti?"?
4 risposta
- voti
-
- 2012-10-06
Questo accadeperchénell'URLmancailnoncenecessario,che viene controllatoin
wp-login.php
case 'logout' : check_admin_referer('log-out'); ...
Usa
wp_logout_url
per recuperare l'URLincludendoilnonce.Se desideri reindirizzare a un URLpersonalizzato,passalo semplicemente come argomento.<a href="<?php echo wp_logout_url('/redirect/url/goes/here') ?>">Log out</a>
Potresti anche usare
wp_loginout
chegenerail linkperte inclusa latraduzione:echo wp_loginout('/redirect/url/goes/here')
This happens because you are missing the neccessary nonce in the URL, which is being checked in
wp-login.php
case 'logout' : check_admin_referer('log-out'); ...
Use
wp_logout_url
in order to retreive the URL including the nonce. If you want to redirect to a custom URL, simply pass it as an argument.<a href="<?php echo wp_logout_url('/redirect/url/goes/here') ?>">Log out</a>
You could also use
wp_loginout
which generates the link for you including translation:echo wp_loginout('/redirect/url/goes/here')
-
echo wp_loginout ('/redirect/url/goes/here')funzionabene ..echo wp_loginout('/redirect/url/goes/here') is working fine..
- 1
- 2015-10-30
- Mayur Devmurari
-
Sto usando `wp_logout_url (get_permalink ())`e lapagina di confermanon vieneignorata.Ilnonce vienegenerato comeparte dell'URLma vengo comunqueinviato allapagina di confermaI'm using `wp_logout_url( get_permalink())` and the confirmation page is not bypassed. The nonce is generated as part of the URL but I am still sent to the confirmation page
- 1
- 2018-12-17
- Ralphonz
-
Stessoproblema qui :(Same issue here :(
- 0
- 2019-04-14
- Jarmerson
-
Grazie.mi hafunzionato cheecho wp_logout_url ();thanks. worked me that echo wp_logout_url();
- 0
- 2020-05-26
- Erhan Demirci
-
- 2016-04-04
Senonpuoi utilizzare lafunzione
wp_logout_url()
,puoi disattivare questa convalida utilizzando questo codice:add_action('check_admin_referer', 'logout_without_confirm', 10, 2); function logout_without_confirm($action, $result) { /** * Allow logout without confirmation */ if ($action == "log-out" && !isset($_GET['_wpnonce'])) { $redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : 'url-you-want-to-redirect'; $location = str_replace('&', '&', wp_logout_url($redirect_to)); header("Location: $location"); die; } }
Sostituisci
'url-you-want-to-redirect'
con l'URL che desideri reindirizzare dopoil logout.Aggiungiloneltuo
functions.php
If you can't use
wp_logout_url()
function, You can turn off this validation using this code:add_action('check_admin_referer', 'logout_without_confirm', 10, 2); function logout_without_confirm($action, $result) { /** * Allow logout without confirmation */ if ($action == "log-out" && !isset($_GET['_wpnonce'])) { $redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : 'url-you-want-to-redirect'; $location = str_replace('&', '&', wp_logout_url($redirect_to)); header("Location: $location"); die; } }
Replace
'url-you-want-to-redirect'
with the URL you want to redirect after logout.Add it in your
functions.php
-
Funzionaper la disconnessione senza convalida,manon reindirizza all'URL che desidero.This works for logging out without validation, but it doesn't redirect to the url I want.
- 0
- 2017-06-29
- Phu Nguyen
-
@PhuNguyen Devi solo aggiungere l'URL di reindirizzamento alla richiesta di reindirizzamentoin quel codice dove ci sono le virgolette "",dopoi duepunti.@PhuNguyen You just need to add the redirect URL to the redirect request in that code where there is ' ' quotes, after the colon.
- 0
- 2017-12-17
- NJENGAH
-
ci sonoimplicazioni sulla sicurezzaper la rimozione di questa convalida?are there any security implications for removing this validation?
- 0
- 2018-03-20
- rok
-
@ user1264304 Credo che un JS dannoso caricatoin qualchemodonelbrowserpossa reindirizzare allapagina di accesso,matutto ciò chefarà è disconnettere l'utente.Il codice veramente dannosoprobabilmente cercherebbe di sostituire l'URLprima di unnonce valido.L'utentepuònavigare verso un altro sito che ha quindi un collegamento allapagina di logout del sito corrente,supponendo che l'altro sito sia consapevole che l'utente ha una relazione.Ancora una volta,nessuna conseguenza senon la disconnessione dell'utente.Non l'homai visto.Quindi,per rispondere allatua domanda,non credo che ci sia un'implicazione di sicurezzaper la rimozione della convalida.@user1264304 I believe malicious JS somehow loaded into the browser could do a redirect to the login page, but all it's going to do is logout the user. Truly malicious code would probably seek to replace the URL before a valid nonce. The user could navigate to another site which then has a link the current site's logout page - assuming the other site is aware that the user has a relationship. Again, no consequence other than logging out the user. I've never seen this. So to answer your question, I do Not think there is a security implication for removing the validation.
- 0
- 2018-05-04
- TonyG
-
Err,troppi reindirizzamenti ...Err, Too Many Redirects...
- 0
- 2019-02-05
- Solomon Closson
-
Ottima soluzioneperme soprattuttoperchénon habisogno diphpextra sullamiapagina di logout.Uso semplicemente questo link: wp-login.php? Action=logout E come reindirizzamento,uso home_url () quindifunziona su qualsiasi sito.Excellent solution for me especially because it needs no extra php on my logout page. I simply use this link:wp-login.php?action=logout And as redirect, I use home_url() so it works on any site.
- 0
- 2020-08-28
- Ralf
-
- 2019-03-04
Se crei un collegamentopersonalizzatonelmenu,imposta l'etichetta su
“Logout”
e l'URL suhttp://yourdomain.com/wp-login.php?action=logout
. Quindi aggiungi questafunzione altuofilefunctions.php
:function change_menu($items){ foreach($items as $item){ if( $item->title == "Logout"){ $item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ); } } return $items; } add_filter('wp_nav_menu_objects', 'change_menu');
Se desideri reindirizzare allapagina di accesso dopoil logout,devi aggiungere l'URL di accesso come:
$item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ).'&redirect_to='.wp_login_url();
**provato chenon hafunzionato. Voglio davvero uscire dallapagina 4poi qualcosa è andato storto quando sifa clic sulpulsante.
If you create a custom link in your menu, set the label to
“Logout”
, and set the URL tohttp://yourdomain.com/wp-login.php?action=logout
. Then add this function to yourfunctions.php
file:function change_menu($items){ foreach($items as $item){ if( $item->title == "Logout"){ $item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ); } } return $items; } add_filter('wp_nav_menu_objects', 'change_menu');
If you want to redirect to the login page after logout then you should append login URL as:
$item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ).'&redirect_to='.wp_login_url();
** tried that did not work. Really want to log out page then 4 something went wrong when clicking the button.
-
- 2019-08-01
Questo hafunzionatoperme aggiungendo
/?customer-logout=true
allafine.http://www.website.com/?customer-logout=true
This worked for me by adding
/?customer-logout=true
at the end.http://www.website.com/?customer-logout=true
In questomomento,quandoescotramite:
mi reindirizza allapaginain cui devo confermare la disconnessione.
Comeeliminare la confermae reindirizzare alla homepage dopoil logout?