• Hola! Tengo un menú principal con un link a «Mi cuenta» y quiero agregar en el desplegable del menú una opción para «Cerrar sesión» (actualmente esta opción la tengo solo disponible en la página de mi cuenta), pero me gustaría que este directamente en el menú principal para evitar tener que entrar en Mi cuenta para cerrar sesión.
    Cómo podría hacerlo?
    muchas gracias!

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • Moderador jose64

    (@jose64)

    Hola

    Tienes que crear la opción en el menú como un enlace personalizado, con la opción pones la misma url que en salir de la cuenta, debe ser algo así:

    http://vivianag.sg-host.com/mi-cuenta/customer-logout/

    De esta forma llegas al mismo resultado pero directamente.

    Si con esto queda resuelta tu duda, por favor háznoslo saber y cierra el debate marcándolo como resuelto, así nos ayudas a mantener el foro al día.

    Iniciador del debate vivigonzab

    (@vivigonzab)

    Hola, al utilizar ese vínculo, me lleva a la página mi cuenta, y en el medio de la página dice, «estas seguro que quieres salir? Confirma y salir». Me gustaría que, al hacer click, cierre cesión directamente y se quede en la página dónde se encuentra el usuario o que vaya a la home.
    Porque de esta manera, el usuario tiene que hacer dos click para cerrar cesión.
    Gracias, saludos.
    Viviana.

    Moderador jose64

    (@jose64)

    Hola

    Para eliminar la confirmación por parte del usuario tienes que añadir este fragmento de código en el archivo functions.php de tu tema hijo o en un plugin de personalizaciones como Code Snippets:

    add_action('check_admin_referer', 'logout_without_confirm', 10, 2);
    function logout_without_confirm($action, $result)
    {
        if ($action == "log-out" && !isset($_GET['_wpnonce'])) {
            $redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : '/';
            $location = str_replace('&', '&', wp_logout_url($redirect_to));
            header("Location: $location");
            die;
        }
    }

    Con este código redireccionas a la página de inicio directamente, puedes cambiar la / por la url que quieras para la redirección en la salida.

    Recuerda comentar y cerrar el debate marcándolo como resuelto cuando así lo consideras, de esta forma nos ayudas a mantener el foro al día.

    Iniciador del debate vivigonzab

    (@vivigonzab)

    Hola Jose Luis, pegué el código en un plugin que tengo que se ejecuta obligatoriamente luego de que se cargue todo (must use plugin), pero no me funcionó. Este plugin lo estoy usando para modificar diferentes cosas y me funciona bien pero no con el código que me enviaste. Se te ocurre porqué podrá ser?
    gracias!

    Moderador jose64

    (@jose64)

    Hola

    No tengo idea de por qué no te funciona, yo lo tengo funcionando en alguna web sin problema. Prueba lo siguiente: elimina el código y edita el menú, cambia el enlace personalizado que tienes ahora para la salida por

    http://vivianag.sg-host.com/mi-cuenta/?customer-logout=true

    He hecho alguna prueba en tu web y me funciona correctamente. En el repositorio también tienes un plugin para eso mismo:

    Disable woocommerce logout confirmation

    Iniciador del debate vivigonzab

    (@vivigonzab)

    Hola
    lo que pasa es que de este modo, al hacer click me muestra un campo para completar usuario y contraseña de wordpress. O sea me arruina la navegabilidad del sitio.
    En la primera opción que me pasaste, con el código, qué vínculo debería poner en el enlace personalizado?
    Gracias.

Viendo 6 respuestas - de la 1 a la 6 (de un total de 6)
  • El debate ‘Agregar Cerrar sesión a menú Mi cuenta’ está cerrado a nuevas respuestas.