WooCommerce – Mi cuenta – cerrar sesión y redirigir a la página de inicio

2 minutos de lectura

Avatar de usuario de Rich72
rico72

Una vez que un usuario está en su página Mi cuenta en WooCommerce, me gustaría que cierre sesión y sea redirigido a mi página de inicio en lugar de terminar en la página de inicio de sesión.

avatar de usuario de mujuonly
solo muju

add_action('wp_logout','auto_redirect_after_logout');

function auto_redirect_after_logout(){

  wp_redirect( home_url() );
  exit();

}

  • He agregado esto en mi archivo function.php. Cuando hice clic para acceder a Mi cuenta, la página de inicio de sesión no se activó. Nada disparó de hecho. ¿No es tan simple como agregar este código en el archivo function.php?

    – Rich72

    26 de febrero de 2019 a las 11:26

  • Agregué el código en mi tema hijo. apexgray.co.uk/mi-cuenta

    – Rich72

    26 de febrero de 2019 a las 11:30


  • Volveré a agregar el código en el archivo function.php y te lo haré saber…

    – Rich72

    26 de febrero de 2019 a las 11:32

  • Tal vez mi pregunta no fue clara. Cuando el usuario haya iniciado sesión en su cuenta y haya terminado, cuando haga clic en cerrar sesión, idealmente me gustaría que vaya a la página de inicio.

    – Rich72

    26 de febrero de 2019 a las 11:37

  • ¡Creo que mi pregunta original era confusa…!

    – Rich72

    26 de febrero de 2019 a las 11:38

Solo para agregar a la respuesta original, usar exit para terminar el script puede evitar que Woocommerce se ejecute después de cerrar sesión, como borrar las cookies (artículos del carrito en cookies). Así que tu mejor apuesta es usar logout_urlfiltrar así.

function redirect_after_logout($logout_url, $redirect) {
    return $logout_url . '&redirect_to=' . home_url();
}
add_filter('logout_url', 'redirect_after_logout', 10, 2);

Probado en Woocommerce Versión 5.4.1 ✅

Avatar de usuario de Ahmet Kaptan
Ahmet Kaptán

Si encuentra cómo omitir la confirmación de cierre de sesión de WooCommerce, puede tomar esto:

function wooHook_woocommerce_logout_bypass() {
    global $wp;

    if ( isset( $wp->query_vars['customer-logout'] ) ) {
        wp_redirect( str_replace( '&', '&', 
          wp_logout_url( wc_get_page_permalink( 'hesabim' ) ) ) );
        exit;
    }
}

add_action( 'template_redirect', 'wooHook_woocommerce_logout_bypass' );

¿Ha sido útil esta solución?