¿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.