نمایش تاریخ آخرین ورود کاربران در وردپرس و ووکامرس

اگر سایت وردپرس شما کاربران زیادی دارد، احتمالا گاهی دوست دارید بدانید چه کسانی هنوز فعال هستند. مثلا اگر چند مدیر دارید، ممکن است بخواهید آن هایی را که مدتی وارد سایت نشده اند حذف کنید.
اینجاست که اطلاع از آخرین زمان ورود کاربران خیلی مفید می شود. در این مقاله یاد می گیرید که چطور تاریخ آخرین ورود هر کاربر را در سایت خود ببینید. حتی می توانید لیست کاربران را بر اساس این زمان مرتب کنید تا راحت تر بفهمید چه کسانی مدتی است وارد سایت نشده اند.
در ادامه دو روش را بررسی می کنیم. یکی با استفاده از افزونه و یکی هم بدون افزونه.
روش اول استفاده از افزونه When Last Login
ساده ترین روش برای نمایش تاریخ آخرین ورود کاربران، نصب افزونه When Last Login است.
این افزونه رایگان است و بیشتر از ۵۰ هزار نصب فعال دارد. همچنین میانگین رضایت کاربران از آن ۹۴ درصد است.
بعد از نصب و فعال سازی، یک ستون جدید به بخش کاربران در پیشخوان وردپرس اضافه می شود. در این ستون، تاریخ آخرین ورود هر کاربر نمایش داده می شود.
اگر کاربری بعد از نصب افزونه وارد سایت نشده باشد، روبروی نام او عبارت “Never” نشان داده می شود.
روش دوم افزودن دستی کد برای نمایش زمان ورود
اگر به اضافه کردن کد در فایل functions.php یا استفاده از افزونه Code Snippets عادت دارید، می توانید این کد ساده را به سایت اضافه کنید.
این کد چند کار انجام می دهد. اول از همه، هر بار که کاربری وارد سایت شود، زمان ورودش در متای مربوط به کاربر ذخیره می شود. دوم اینکه یک ستون جدید به لیست کاربران در پیشخوان اضافه می کند. این ستون قابل مرتب سازی (سورتینگ) است و می توانید کاربران را بر اساس آخرین ورود مرتب کنید. در نهایت، با یک شورت کد ساده هم می توانید تاریخ ورود را در فرانت اند سایت نمایش دهید.
کد PHP برای ثبت و نمایش آخرین ورود کاربران:
// ثبت زمان آخرین ورود کاربر
add_action( 'wp_login', 'smartwp_capture_login_time', 10, 2 );
function smartwp_capture_login_time( $user_login, $user ) {
update_user_meta( $user->ID, 'last_login', time() );
}
// افزودن ستون به لیست کاربران
add_filter( 'manage_users_columns', 'smartwp_user_last_login_column' );
add_filter( 'manage_users_custom_column', 'smartwp_last_login_column', 10, 3 );
function smartwp_user_last_login_column( $columns ) {
$columns['last_login'] = 'Last Login';
return $columns;
}
function smartwp_last_login_column( $output, $column_id, $user_id ){
if( $column_id == 'last_login' ) {
$last_login = get_user_meta( $user_id, 'last_login', true );
$date_format = 'M j, Y';
$hover_date_format = 'F j, Y, g:i a';
$output = $last_login ? '<div title="Last login: '.date( $hover_date_format, $last_login ).'">'.human_time_diff( $last_login ).'</div>' : 'No record';
}
return $output;
}
// امکان مرتب سازی ستون آخرین ورود
add_filter( 'manage_users_sortable_columns', 'smartwp_sortable_last_login_column' );
add_action( 'pre_get_users', 'smartwp_sort_last_login_column' );
function smartwp_sortable_last_login_column( $columns ) {
return wp_parse_args( array(
'last_login' => 'last_login'
), $columns );
}
function smartwp_sort_last_login_column( $query ) {
if( !is_admin() ) return $query;
$screen = get_current_screen();
if( isset( $screen->base ) && $screen->base !== 'users' ) return $query;
if( isset( $_GET[ 'orderby' ] ) && $_GET[ 'orderby' ] == 'last_login' ) {
$query->query_vars['meta_key'] = 'last_login';
$query->query_vars['orderby'] = 'meta_value';
}
return $query;
}
// شورت کد برای نمایش آخرین ورود در صفحات سایت
function smartwp_lastlogin_shortcode( $atts ) {
$atts = shortcode_atts( array(
'user_id' => false,
), $atts, 'lastlogin' );
$last_login = get_the_author_meta('last_login', $atts['user_id']);
if( empty($last_login) ) return false;
$the_login_date = human_time_diff($last_login);
return $the_login_date;
}
add_shortcode( 'lastlogin', 'smartwp_lastlogin_shortcode' );
نتیجه بعد از افزودن کد
پس از قرار دادن این کد در سایت، زمان ورود کاربران ثبت می شود و در بخش کاربران ستون جدیدی به نام “Last Login” دیده می شود. اگر کاربری هنوز وارد نشده باشد، عبارت “No record” نمایش داده می شود.
همچنین اگر نشانگر موس را روی تاریخ ورود نگه دارید، زمان دقیق به صورت کامل نمایش داده می شود.
اگر با PHP آشنا باشید، می توانید این کد را به دلخواه خودتان سفارشی سازی کنید. حتی می توانید از شورت کد [lastlogin]
برای نمایش زمان ورود در صفحات مختلف استفاده کنید. مثلا می توانید آن را در بخش باکس نویسنده قرار دهید تا کاربران ببینند نویسنده آخرین بار چه زمانی آنلاین بوده است.
اگر سوالی در مورد این روش ها دارید یا در اجرا به مشکلی برخوردید، حتما در بخش دیدگاه ها مطرح کنید. با این روش می توانید مدیریت کاربران سایتتان را بهتر و دقیق تر انجام دهید.