X

Como Capturar a Última Data e Hora de Login dos Usuários no WordPress

Snippets por IsItWP

Você está procurando uma maneira de capturar a data e hora do último login de um usuário? Embora provavelmente exista um plugin para isso, criamos um trecho de código rápido que você pode usar para capturar a data e hora do último login de usuários no WordPress.

Instruções:

Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:

// set the last login date
add_action('wp_login','iiwp_set_last_login', 0, 2);
function iiwp_set_last_login($login, $user) {  
    $user = get_user_by('login',$login);
    $time = current_time( 'timestamp' );
    $last_login = get_user_meta( $user->ID, '_last_login', 'true' );

    if(!$last_login){
    update_usermeta( $user->ID, '_last_login', $time );
    }else{
    update_usermeta( $user->ID, '_last_login_prev', $last_login );
    update_usermeta( $user->ID, '_last_login', $time );
    }

}

// get last login date
function iiwp_get_last_login($user_id,$prev=null){

  $last_login = get_user_meta($user_id);
  $time = current_time( 'timestamp' );

  if(isset($last_login['_last_login_prev'][0]) && $prev){
          $last_login = get_user_meta($user_id, '_last_login_prev', 'true' );
  }else if(isset($last_login['_last_login'][0])){
          $last_login = get_user_meta($user_id, '_last_login', 'true' );
  }else{
    update_usermeta( $user_id, '_last_login', $time );
    $last_login = $last_login['_last_login'][0];
  }

  return $last_login;
}

Você pode então usar o seguinte código para exibir a data do último login. Você também pode querer mostrar a data do login anterior aos seus usuários. Simplesmente use iiwp_get_last_login($current_user->ID,true)) para obter a data do login anterior, não a atual.

  // show last login date
  global $current_user;
  get_currentuserinfo();
  echo '<p>Previous: Login date: ' . date("Y-m-d h:m:s", iiwp_get_last_login($current_user->ID,true)) . '</p>';
  echo '<p>Current: Login date: ' . date("Y-m-d h:m:s", iiwp_get_last_login($current_user->ID)) . '</p>';

Você também pode comparar a data do último login com a data atual e obter os dias desde o último login com o seguinte código.

  // how many days since last login
  global $current_user;
  get_currentuserinfo();

  $now = time();
  $last_login = iiwp_get_last_login($current_user->ID,true);
  $datediff = $now - $last_login;

  echo '<p>Days since last login: ' . floor($datediff/(60*60*24)) . '</p>';


Algumas funções na versão antiga abaixo foram descontinuadas, incluindo get_userdatabylogin(). Por favor, use o código acima, pois é a versão mais atual usando get_user_by().

function your_last_login($login) {
    global $user_ID;
    $user = get_userdatabylogin($login);
    update_usermeta($user->ID, 'last_login', current_time('mysql'));
}
add_action('wp_login','your_last_login');

function get_last_login($user_id) {
    $last_login = get_user_meta($user_id, 'last_login', true);
    $date_format = get_option('date_format') . ' ' . get_option('time_format');
    $the_last_login = mysql2date($date_format, $last_login, false);
    echo $the_last_login;
}
<?php
         global $userdata;
         get_currentuserinfo();
         echo  'You last logged in:'; 
         get_last_login($userdata->ID); 
?>

Observação: Se esta é a sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets de código corretamente no WordPress, para não quebrar acidentalmente seu site.

Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: 23 dicas eficazes para conseguir mais assinantes de e-mail hoje e como criar um formulário WordPress com seletor de data

Comentários   Deixe uma resposta

  1. como mostrar hora e data do último login de todos os usuários como uma lista

  2. no formato de data e hora do último login está errado. por favor, corrija. h:i:s está correto

  3. Ótima partilha. Artigo realmente útil e informativo. Obrigado por compartilhar conosco.

  4. Web design Cheshire May 12, 2017 at 8:24 am

    Código realmente útil aqui. Obrigado.

  5. Toque de Silencio May 5, 2017 at 6:10 am

    Oi,
    Eu sou novo em snippets, então como eu mostro este (ou qualquer) snippet no frontend?

  6. Danielconde Uy March 20, 2012 at 1:51 pm

    Descontinuado

  7. Olá! Ótimo código, muito obrigado! Tenho uma pergunta: seria possível ter uma lista de todos os usuários mostrando se eles estão conectados e a última vez que fizeram login se não estiverem?

    Acho que seria uma informação muito interessante para qualquer administrador que trabalhe com vários colaboradores.

    Obrigado novamente 😉

    1. Obrigado, fico feliz que goste do trecho. Isso poderia ser feito, mas nessa extensão, acho que um plugin seria mais adequado, alguns plugins estão disponíveis.

      http://wordpress.org/extend/plugins/who-is-online/

      1. Parece um ótimo plugin, embora um pouco desatualizado, mas vou tentar, obrigado!

      2. Obrigado Kevin,

        Vou testar isso.
        Cuide-se / Lars

  8. Ótimo, vou testar.

    MAS, você sabe onde encontrar o código para poder ver quantas vezes cada usuário faz login no wordpress e também a última data. (Banco de dados MySQL para poder obter o último?)
    Atenciosamente / Lars

    1. Bem, o acima cuidará da data do último login, no entanto, o número de vezes que um usuário fez login poderia ser feito. Terei que ver sobre adicionar isso como um trecho. Procurei, mas não encontrei nada.

Adicionar um comentário

Ficamos felizes que você tenha escolhido deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de privacidade, e todos os links são nofollow. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.

Checklist de Lançamento WordPress

O Checklist Definitivo para Lançamento de WordPress

Compilamos todos os itens essenciais da lista de verificação para o lançamento do seu próximo site WordPress em um e-book prático.
Sim, envie-me o eBook Gratuito!