¿Cómo obtener userid en wp_logout action hook?


8

Necesito realizar una limpieza después de que un usuario haya cerrado sesión, así que agregué un enlace de acción wp_logout. El problema es que wp_get_current_user () ya devuelve nulo si se llama desde el enlace de acción wp_logout. ¿Cómo obtengo el ID de usuario de usuario que cierra sesión dentro de un enlace de acción wp_logout?

Respuestas:


14

¿Qué hay de engancharse 'clear_auth_cookie'con la limpieza que necesita hacer? Si necesita aún más profundidad, puede reemplazarlo por completo wp_clear_auth_cookie(), pero eso puede generar problemas donde entrará en conflicto con otros complementos, así que evítelo si es posible.


¡Muchas gracias! Esto es exactamente lo que estaba buscando.
Davos Seaworth

Esto funcionó perfectamente. He usado este gancho para un complemento de auditoría personalizado, para registrar el evento de cierre de sesión. Gracias.
julianm

-2

Sé que esto es un poco tarde ... pero me encontré con este problema. Así es como resolví el problema.

Agregue lo siguiente a sus functions.php

function logout_redirect765(){
  $current_user = wp_get_current_user(); 
  wp_redirect( home_url().'/?userid='.$current_user->ID ); 
  exit; 
}
add_action('wp_logout','logout_redirect765');

Básicamente, esto almacena el ID de usuario en un parámetro de URL cuando el usuario cierra sesión.

Luego simplemente obtenga el parámetro con lo siguiente:

$_GET['userid']

Espero que esto ayude a alguien en el futuro que encuentre esta publicación.


-3
add_action('wp_logout', 'user_id');

function user_id()
{
    wp_get_current_user()->data->ID;
}

use esto en el archivo principal del complemento


44
Como el OP dice 'wp_get_current_user () ya devuelve nulo si se llama desde el gancho de acción wp_logout', por lo que esto no funcionará.
marfarma
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.