Cómo cerrar sesión sin confirmación '¿Realmente desea cerrar sesión? "?

8

Ahora mismo cuando me desconecto a través de:

<a href="<?php bloginfo('url'); ?>/wp-login.php?action=logout">Log out</a>

me redirige a la página donde necesito confirmar el cierre de sesión.

¿Cómo eliminar la confirmación y redirigir a la página de inicio después de cerrar sesión?

    
pregunta Derfder 06.10.2012 - 10:46

2 respuestas

21

Esto sucede porque le falta el elemento necesario en la URL, que se está comprobando en wp-login.php

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

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

<a href="<?php echo wp_logout_url('/redirect/url/goes/here') ?>">Log out</a>

También puedes usar wp_loginout que genera el enlace para ti, incluida la traducción:

echo wp_loginout('/redirect/url/goes/here')
    
respondido por el ndm 06.10.2012 - 12:24
9

Si no puede usar la función wp_logout_url() , 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('&amp;', '&', wp_logout_url($redirect_to));
        header("Location: $location");
        die;
    }
}

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

Agrégalo a tu functions.php

    
respondido por el Дмитрий Шишов 04.04.2016 - 15:48

Lea otras preguntas en las etiquetas