Saltar al contenido

Wordpress – ¿Cómo cerrar sesión sin confirmación ‘¿Realmente desea cerrar sesión?’

Luego de indagar en diversos repositorios y sitios de internet al concluir descubrimos la resolución que te enseñamos a continuación.

Solución:

Esto sucede porque falta el nonce necesario en la URL, que se está registrando wp-login.php

case 'logout' :
    check_admin_referer('log-out');
    ...

Usar wp_logout_url para recuperar la URL incluyendo el nonce. Si desea redirigir a una URL personalizada, simplemente pásela como argumento.

">Log out

También podrías usar wp_loginout que genera el enlace para usted, incluida la traducción:

echo wp_loginout('/redirect/url/goes/here')

Si no puedes usar wp_logout_url() función, puede desactivar esta validación usando este código:

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;
    

Reemplazar 'url-you-want-to-redirect' con la URL que desea redirigir después de cerrar sesión.

Agrégalo en tu functions.php

Si crea un enlace personalizado en su menú, establezca la etiqueta en “Logout”y establezca la URL en http://yourdomain.com/wp-login.php?action=logout. Luego agregue esta función a su functions.php expediente:

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');

Si desea redirigir a la página de inicio de sesión después de cerrar sesión, debe agregar la URL de inicio de sesión como:

$item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ).'&redirect_to='.wp_login_url();

Link de referencia

** intenté que no funcionó. Realmente quiero cerrar sesión en la página y luego 4 algo salió mal al hacer clic en el botón.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *