Last active
April 3, 2024 23:20
-
-
Save lukecav/9e7775cbe3172ef32b5191f5b56d64fb to your computer and use it in GitHub Desktop.
Logout of WordPress without confirmation message
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function getLogoutUrl($redirectUrl = ''){ | |
if(!$redirectUrl) $redirectUrl = site_url(); | |
$return = str_replace("&", '&', wp_logout_url($redirectUrl)); | |
return $return; | |
} | |
/** | |
* Bypass logout confirmation on nonce verification failure | |
*/ | |
function logout_without_confirmation($action, $result){ | |
if(!$result && ($action == 'log-out')){ | |
wp_safe_redirect(getLogoutUrl()); | |
exit(); | |
} | |
} | |
add_action( 'check_admin_referer', 'logout_without_confirmation', 1, 2); |
You can add the code into the functions.php
file of the child theme, use a plugin like Code Snippets or add the code into a site-specific plugin.
Hi Luke,
The code is very much working for me, except that it is not detecting the redirect_to URL as mentioned in the Logout URL, for e.g., /wp-login.php?action=logout&redirect_to=/login/
No matter whatever value I provide in redirect_to, I am always redirected to the homepage.
Can you please sort it out?
Thanks in advance.
Perfect for me! (youpage.com/wp-login.php?action=logout)
/**
- Generates custom logout URL
*/
function getLogoutUrl($redirectUrl = ''){
if(!$redirectUrl) $redirectUrl = site_url();
$return = str_replace("&", '&', wp_logout_url($redirectUrl));
return $return;
}
/**
- Bypass logout confirmation on nonce verification failure
*/
function logout_without_confirmation($action, $result){
if(!$result && ($action == 'log-out')){
wp_safe_redirect(getLogoutUrl());
exit();
}
}
add_action( 'check_admin_referer', 'logout_without_confirmation', 1, 2);
Below code worked fine for me
/** * Generates custom logout URL */ function getLogoutUrl($redirectUrl = ''){ if(!$redirectUrl) $redirectUrl = site_url(); $return = str_replace("&", '&', wp_logout_url($redirectUrl)); return $return; } /** * Bypass logout confirmation on nonce verification failure */ function logout_without_confirmation($action, $result){ if(!$result && ($action == 'log-out')){ wp_safe_redirect(getLogoutUrl()); exit(); } } add_action( 'check_admin_referer', 'logout_without_confirmation', 1, 2);
Tried this yesterday. Worked for me. Thanks!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Just go to your Appearance >> Theme editor >> Function.php file. And End of that file simply paste the above code