Logout con url oculta para Menú. ¿Es posible usando CLASES?

  • Autor Autor Gabrieluno
  • Fecha de inicio Fecha de inicio
Gabrieluno

Gabrieluno

Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Necesito ayuda para crear una Función de desconexión para el menú superior, debe ocultar la Url que seria «wp-login.php» y direccionar a la home.

Supongo se podría hacer utilizando una clase que cargue una función de wp_logout, así por medio de la clase lo podría agregar al menú de WordPress, y desconectaría al usuario cuando haga click en el botón de Logout.

El problema es que llevo días buscando por internet y no hay ninguna función como para desconectar a un usuario ocultando la url por medio de una clase, además soy novato y no lo logre con códigos incompletos. Si alguien es capaz de crear una función que solucione este problema le estaré agradecido de todo corazón, con tal hazaña tu nombre será recordado a lo largo del tiempo ♥

Funciones probablemente útiles:
Pastebin aquí
 
Hola Gabriel:

Te sugiero que publiques tu pregunta en algún foro específico de WordPress ya que tu problema parece muy específico de esa plataforma.

Suerte!
 
Necesito ayuda para crear una Función de desconexión para el menú superior, debe ocultar la Url que seria «wp-login.php» y direccionar a la home.

Supongo se podría hacer utilizando una clase que cargue una función de wp_logout, así por medio de la clase lo podría agregar al menú de WordPress, y desconectaría al usuario cuando haga click en el botón de Logout.

El problema es que llevo días buscando por internet y no hay ninguna función como para desconectar a un usuario ocultando la url por medio de una clase, además soy novato y no lo logre con códigos incompletos. Si alguien es capaz de crear una función que solucione este problema le estaré agradecido de todo corazón, con tal hazaña tu nombre será recordado a lo largo del tiempo ♥

Funciones probablemente útiles:
Pastebin aquí
Muy bien no se que tienes que hacer, Imagino que tendrias que utilizar una función javascript que haga una llamada a ajax. En esa llamada entra a un archivo php que llama a wp-login.php y cierra las sesiones activas del usuario y vuelve a la principal y redirecciona al home.
 
Lo primero que necesitas es poder agregar fragmentos de código, te sugiero utilizar un plugin llamado: "Snippets". Luego, como punto de partida puedes utilizar esto:

PHP:
PHP:
/** Configurar Ajax Logout */
if (is_admin()) {
    // En la sección de administrador, configuramos la acción de Ajax Logout
    add_action('wp_ajax_custom_ajax_logout', 'custom_ajax_logout_func');
} else {
    wp_enqueue_script('custom-ajax-logout', get_stylesheet_directory_uri() . '/js/customAjaxLogout.js', array('jquery'), '1.0', true );
    wp_localize_script('custom-ajax-logout', 'ajax_object',
        array(
            'ajax_url' => admin_url('admin-ajax.php'),
            'home_url' => get_home_url(),
            'logout_nonce' => wp_create_nonce('ajax-logout-nonce'),
        )
    );
}
function custom_ajax_logout_func(){
    check_ajax_referer( 'ajax-logout-nonce', 'ajaxsecurity' );
    wp_clear_auth_cookie();
    wp_logout();
    ob_clean(); // Puede estar de más, pero es una buena práctica
    echo 'adios!!';
    wp_die();
}

Javascript:
JavaScript:
jQuery(document).ready( function($){
  $(document).on('click','.logout', function(e) {
    e.preventDefault();
    jQuery.ajax({
        type: 'POST',
        url: ajax_object.ajax_url,
        data: {
            'action': 'custom_ajax_logout', //Llama a wp_ajax_nopriv_ajaxlogout
            'ajaxsecurity': ajax_object.logout_nonce
        },
        success: function(r){
            // Cuando viene la respuesta
            window.location = ajax_object.home_url;
        }
    });
  });
});

Hay varios scripts ya creados en Stackoverflow que puedes consultar, solo busca "Ajax Logout" e intenta implementar alguno.
 
Gracias a todos y en especial a @Jhertz, su código me sirvió! En el propio foro de wp no me dieron la solución, en forobeta si, que linda comunidad. GRACIAS
 
Gracias a todos y en especial a @Jhertz, su código me sirvió! En el propio foro de wp no me dieron la solución, en forobeta si, que linda comunidad. GRACIAS
¡Me alegra que te haya servido!

Siempre es un placer ayudar.
 
Atrás
Arriba