Stai cercando un modo per acquisire la data e l'ora dell'ultimo accesso di un utente? Sebbene probabilmente esista un plugin per questo, abbiamo creato un rapido snippet di codice che puoi utilizzare per acquisire la data e l'ora dell'ultimo accesso degli utenti in WordPress.
Istruzioni:
Tutto quello che devi fare è aggiungere questo codice al file functions.php del tuo tema o in un plugin specifico per il sito:
// 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;
}
Puoi quindi utilizzare il seguente codice per visualizzare la data dell'ultimo accesso. Potresti anche voler mostrare la data dell'accesso precedente ai tuoi utenti. Usa semplicemente iiwp_get_last_login($current_user->ID,true)) per ottenere la data dell'accesso precedente, non quella corrente.
// 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>';
Puoi anche confrontare la data dell'ultimo accesso con la data corrente e ottenere i giorni trascorsi dall'ultimo accesso con il seguente codice.
// 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>';
Alcune funzioni nella vecchia versione sottostante sono state deprecate, inclusa get_userdatabylogin(). Si prega di utilizzare il codice sopra poiché è la versione più aggiornata che utilizza 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);
?>
Nota: Se questa è la prima volta che aggiungi snippet di codice in WordPress, consulta la nostra guida su come aggiungere correttamente snippet di codice in WordPress, in modo da non compromettere accidentalmente il tuo sito.
Se ti è piaciuto questo snippet di codice, ti preghiamo di considerare la lettura dei nostri altri articoli sul sito come: 23 consigli efficaci per ottenere più iscritti via email oggi e come creare un modulo WordPress con un selettore di data
come mostrare l'ora e la data dell'ultimo accesso di tutti gli utenti come elenco
nel formato di visualizzazione dell'ora e della data dell'ultimo accesso è sbagliato. per favore correggilo. h:i:s è corretto
Ottima condivisione. Articolo davvero utile e informativo. Grazie per aver condiviso con noi.
Codice davvero utile qui. Grazie.
Ciao,
Sono nuovo nei frammenti, quindi come mostro questo (o qualsiasi) frammento nel frontend?
Deprecato
Ciao! Ottimo codice, grazie mille! Ho una domanda però: sarebbe possibile avere un elenco di tutti gli utenti che mostri se sono connessi e l'ultima volta che hanno effettuato l'accesso se non lo sono?
Penso che sarebbe un'informazione molto interessante per qualsiasi amministratore che lavora con più collaboratori.
Grazie ancora 😉
Grazie, sono contento che ti piaccia lo snippet. Si potrebbe fare, ma a quel punto penso che un plugin sarebbe la soluzione migliore, sono disponibili alcuni plugin.
http://wordpress.org/extend/plugins/who-is-online/
Sembra un ottimo plugin anche se un po' datato, ma lo proverò, grazie!
Grazie Kevin,
Lo testerò.
Stammi bene / Lars
Ottimo, lo testerò.
MA, sai dove trovare il codice per poter vedere quante volte ogni utente accede a WordPress e anche l'ultima data. (Database MySQL per poter estrarre i dati)?
Saluti / Lars
Bene, quanto sopra gestirà la data dell'ultimo accesso, tuttavia il numero di volte in cui un utente ha effettuato l'accesso potrebbe essere fatto. Dovrò vedere come aggiungerlo come snippet, ho cercato ma non ho trovato nulla.