Căutați o modalitate de a captura data și ora ultimei autentificări a unui utilizator? Deși probabil există un plugin pentru asta, am creat o scurtă secvență de cod pe care o puteți folosi pentru a captura data și ora ultimei autentificări a utilizatorilor în WordPress.
Instrucțiuni:
Tot ce trebuie să faceți este să adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului:
// 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;
}
Puteți apoi folosi următorul cod pentru a afișa data ultimei autentificări. S-ar putea să doriți, de asemenea, să afișați data ultimei autentificări anterioare utilizatorilor dvs. Pur și simplu folosiți iiwp_get_last_login($current_user->ID,true)) pentru a obține data ultimei autentificări anterioare, nu cea curentă.
// 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>';
Puteți, de asemenea, compara data ultimei autentificări cu data curentă și obține zilele de la ultima autentificare cu următorul cod.
// 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>';
Unele funcții din vechea versiune de mai jos au fost depreciate, inclusiv get_userdatabylogin(). Vă rugăm să folosiți codul de mai sus, deoarece este cea mai recentă versiune care utilizează 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);
?>
Notă: Dacă aceasta este prima dată când adăugați fragmente de cod în WordPress, consultați ghidul nostru despre cum să adăugați corect fragmente de cod în WordPress, pentru a nu vă defecta accidental site-ul.
Dacă v-a plăcut această secvență de cod, vă rugăm să luați în considerare vizualizarea altor articole de pe site, cum ar fi: 23 de sfaturi eficiente pentru a obține mai mulți abonați prin e-mail astăzi și cum să creați un formular WordPress cu un selector de dată
cum să afișați data și ora ultimei autentificări a tuturor utilizatorilor ca o listă
în afișarea datei și orei ultimei autentificări formatul este greșit. vă rugăm să-l corectați. h:i:s este corect
Distribuire grozavă. Articol foarte util și informativ. Mulțumim pentru distribuire.
Cod foarte util aici. Mulțumesc.
Salut,
Sunt nou în secvențe de cod, așa că cum afișez eu această (sau orice) secvență de cod pe frontend?
Depreciat
Salut! Cod grozav, mulțumesc mult! Am o întrebare totuși: ar fi posibil să aveți o listă a tuturor utilizatorilor care să arate dacă sunt conectați și ultima dată când s-au autentificat dacă nu sunt?
Cred că ar fi o informație foarte interesantă pentru orice administrator care lucrează cu mai mulți colaboratori.
Mulțumesc din nou 😉
Mulțumesc, mă bucur că vă place secvența de cod. Acest lucru s-ar putea face, dar la acea scară cred că un plugin ar fi cel mai potrivit, sunt disponibile câteva pluginuri.
http://wordpress.org/extend/plugins/who-is-online/
Arată ca un plugin grozav, deși puțin învechit, dar îl voi încerca, mulțumesc!
Mulțumesc Kevin,
Voi testa asta.
Ai grijă / Lars
Grozav, voi testa.
DAR, știți unde să găsesc codul pentru a putea vedea de câte ori s-a autentificat fiecare utilizator în WordPress și, de asemenea, ultima dată. (Baza de date MySQL pentru a putea obține rezultatul?
Cu stimă / Lars
Ei bine, cel de mai sus va gestiona data ultimei autentificări, totuși numărul de ori în care un utilizator s-a autentificat ar putea fi făcut. Va trebui să văd dacă adaug asta ca o secvență de cod. Am căutat, dar nu am găsit nimic.