Como obter userid no gancho de ação wp_logout?

8

Preciso executar alguma limpeza após a saída de um usuário, então adicionei um gancho de ação wp_logout. O problema é que wp_get_current_user () já retorna nulo se chamado a partir do gancho de ação wp_logout. Como obtenho a identificação de usuário de logout de usuários dentro de um gancho de ação wp_logout?

Davos Seaworth
fonte

Respostas:

14

Que tal se conectar 'clear_auth_cookie'com a limpeza que você precisa fazer? Se você precisar de ainda mais profundidade, poderá substituí-lo completamente wp_clear_auth_cookie(), mas isso pode gerar problemas nos quais ele entrará em conflito com outros plug-ins; portanto, evite-o, se possível.

mor7ifer
fonte
Muito obrigado! Isto é exatamente o que eu estava procurando.
Davos Seaworth
Isso funcionou perfeitamente. Eu usei esse gancho para um plug-in de auditoria personalizado, para registrar o evento de logout. Obrigado.
Julianm
-2

Eu sei que isso é um pouco tarde .... mas eu me deparei com esse problema. Foi assim que resolvi o problema.

Adicione o seguinte ao seu 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');

Isso basicamente armazena o ID do usuário em um parâmetro de URL quando o usuário efetua logout.

Em seguida, basta obter o parâmetro com o seguinte:

$_GET['userid']

Espero que isso ajude alguém no futuro que encontrar este post.

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

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

use isso no arquivo principal do plugin

sandeep
fonte
4
Como o OP afirma 'wp_get_current_user () já retorna nulo se chamado dentro do gancho de ação wp_logout' - portanto, isso não funcionará.
Marfarma