Redirigir usuario después de cerrar sesión

2 ene 2013, 06:18:24
Vistas: 16.9K
Votos: 2

Estoy intentando crear una página de cancelación de suscripción para mis miembros, pero para poder ver el formulario de cancelación, deben estar desconectados, por lo que el primer enlace es:

/wp-login.php?action=logout&_wpnonce=ba51bbcdc3.

Una vez que cierran sesión, necesito que sean redirigidos al formulario de cancelación, pero no puedo simplemente configurar una redirección, porque esta también es la página de inicio de sesión.

0
Todas las respuestas a la pregunta 3
1

Puedes usar la etiqueta de plantilla wp_logout_url() para generar un enlace de cierre de sesión. Puedes especificar la URL a la que se redirigirá al usuario como primer parámetro:

wp_logout_url( 'http://example.com' );

El código anterior generará una URL que se verá algo así: /wp-login.php?action=logout&_wpnonce=ba51bbcdc3&redirect_to=http://example.com/unsubscribe. Puedes convertirlo en un enlace de la siguiente manera:

<a href="<?php echo wp_logout_url( home_url( 'unsubscribe' ) ); ?>" title="Cerrar sesión">Cerrar sesión & Cancelar suscripción</a>

Si deseas usar esto en una página o publicación, necesitas crear un shortcode:

function wpse_77939_unsubscribe_link() {
    return sprintf(
        '<a href="%s" title="Cerrar sesión">Cerrar sesión & Cancelar suscripción</a>',
        wp_logout_url( home_url( 'unsubscribe' ) )
    );
add_shortcode( 'unsubscribe-link', 'wpse_77939_unsubscribe_link' );

Luego puedes añadir [unsubscribe-link] a una publicación o página donde quieras que aparezca el enlace.


Si estás redirigiendo a otro sitio web además del tuyo, necesitas añadir este código a tu archivo functions.php (reemplaza example.com con el dominio del sitio):

add_filter( 'allowed_redirect_hosts','wpse_77938_allowed_redirect_hosts' );
function wpse_77938_allowed_redirect_hosts( $allowed ) {
    $allowed[] = 'example.com';
    return $allowed;
}
2 ene 2013 07:50:14
Comentarios

Esta respuesta amplía la publicación de @WordPress Kid

shea shea
2 ene 2013 08:31:09
0

Usa este código si lo estás implementando en el menú desde el administrador de menús

http://www.example.com/wp-login.php?action=logout&redirect_to=http://www.example.com/
27 abr 2014 09:17:18
2

WordPress incluye una etiqueta de plantilla que puedes utilizar: wp_logout_url(). Son unas pocas líneas de código simples si deseas redirigir a los usuarios a otra URL después de que cierren sesión.

El año pasado escribí un tutorial sobre cómo usar esta etiqueta de plantilla. En resumen, necesitas crear un filtro en functions.php y luego crear un enlace de Cerrar sesión en sidebar.php.

Si estás redirigiendo a otro sitio web además del tuyo, necesitas agregar este código a tu archivo functions.php (reemplaza example.com con el dominio del sitio):

add_filter( 'allowed_redirect_hosts','wpse_77938_allowed_redirect_hosts' );
function wpse_77938_allowed_redirect_hosts($link) {
    $link[] = 'example.com';
    return $link;
}

Luego necesitas agregar esta línea a tu archivo sidebar.php o en cualquier lugar donde puedas ejecutar PHP:

<a href="<?php echo wp_logout_url( 'http://example.com' ); ?>" title="Cerrar sesión">Cerrar sesión</a>
2 ene 2013 07:40:04
Comentarios

Por favor, explica cómo hacerlo como parte de tu respuesta

shea shea
2 ene 2013 07:55:57

Listo @bungeshea.

Naveen Chand K Naveen Chand K
2 ene 2013 08:02:54