چی قراره یاد بگیریم؟
مشاهده تاریخ آخرین ورود کاربران !
سلام به همراهان همیشگی ژاکد ، تو این مطلب میخوایم یه کد جالب رو بهتون معرفی کنیم ؛
این کد چیکار میکنه؟ جوابش مشخصه ، یه فیلد تو بخش اطلاعات کاربران ایجاد میکنه که تاریخ آخرین ورود کاربران رو نمایش میده و مدیر سایت میتونه ببینه کدوم کاربران فعالیت بیشتری تو سایت دارن و بیشتر به سایت سر میزنن ؛ همچنین میشه حساب های راکد که خیلی وقته فعالیتی نداشتن رو هم پیدا کنید و در صورت نیاز حذفشون کنید.
خب بریم سراغ کد و نحوه استفاده از اون !
تو اولین قدم باید کد زیر رو انتهای فایل Functions.php قرار بدید :
add_action( 'wp_login', 'zhacode_collect_login_timestamp', 20, 2 ); function zhacode_collect_login_timestamp( $user_login, $user ) { update_user_meta( $user->ID, 'last_login', time() ); }
خب حالا باید یه جوری اطلاعات ذخیره شده از ورود هر کاربر رو جلوی اسمش نشون بدیم ، برای اینکار کافیه کد زیر رو اضافه کنیم :
add_filter( 'manage_users_columns', 'zhacode_user_last_login_column' ); add_filter( 'manage_users_custom_column', 'zhacode_last_login_column', 10, 3 ); function zhacode_user_last_login_column( $columns ) { $columns['last_login'] = 'آخرین ورود'; return $columns; } function zhacode_last_login_column( $output, $column_id, $user_id ){ if( $column_id == 'last_login' ) { $last_login = get_user_meta( $user_id, 'last_login', true ); $output = $last_login ? date_i18n( get_option( 'date_format' ), strtotime( $last_login ) ) : '-'; } return $output; }
مثل عکس زیر یه فیلد با عنوان ” آخرین ورود” به بخش اطلاعات کاربران اضافه میشه
خب حالا اگه بخوایم قابلیت مرتب سازی و تغییر ترتیب نمایش رو به این فیلد بدیم (مثلا ببینیم آخرین کاربری که تو سایت لاگین کرده کیه )کافیه از کد زیر استفاده کنیم :
add_filter( 'manage_users_sortable_columns', 'zhacode_sortable_columns' ); add_action( 'pre_get_users', 'zhacode_sort_last_login_column' ); function zhacode_sortable_columns( $columns ) { return wp_parse_args( array( 'last_login' => 'last_login' ), $columns ); } function zhacode_sort_last_login_column( $query ) { if( !is_admin() ) { return $query; } $screen = get_current_screen(); if( isset( $screen->id ) && $screen->id !== '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; }
به همین راحتی!!!
اگه سوالی در مورد این مقاله داشتید کافیه زیر همین پست برامون کامنت بزاری تا راهنماییت کنیم