Trong bài trước mình có chỉ dẫn thêm cột hiển thị ngày đăng ký user trong quản trị WordPress. Hôm nay mình sẽ hướng dẫn làm ra sao để hiểu thời điểm cuối cùng người sử dụng đã đăng nhập vào website của bạn. Kết quả trông như thế này.
Bước 1. Lưu thời điểm cuối Login trong User Meta
Trước khi hiển thị ngày đăng nhập cuối cùng cho từng tài khoản người dùng, chúng ta phải thu thập nó trong mọi lần người dùng đăng nhập vào website của bạn. Mặc định, WordPress không thu thập bất kỳ thông tin về user, vì thế bạn cần code thêm cho tính năng này.
Có hai loại đăng nhập trong WordPress:
- qua form
wp-login.php
- hoặc qua hàm
wp_signon()
trong CODE.
May mắn wordpress có cung cấp hook wp_login
cho tất cả 2 trường hợp đăng nhập trên!
add_action( 'wp_login', 'misha_collect_login_timestamp', 20, 2 ); function misha_collect_login_timestamp( $user_login, $user ) { update_user_meta( $user->ID, 'last_login', time() ); }
Đơn giản chỉ sao chép đoạn mã này đến tệp functions.php
của giao diện hiện tại. Đoạn code này cho phép WordPress bắt đầu lưu thời gian vào trong bảng wp_usermeta
mỗi khi một người sử dụng đăng nhập vào trang web của bạn.
Bước 2. Hiển thị thông tin trên trang All Users
Bây giờ chúng ta sẽ thêm một mới trong trang liệt kê bản kê users để hiển thị thời điểm mà người sử dụng có đăng nhập vào lần cuối. Thêm đoạn mã sau đây vào file functions.php
add_filter( 'manage_users_columns', 'misha_add_last_login_column' ); add_filter( 'manage_users_custom_column', 'misha_last_login_column', 10, 3 ); function misha_user_last_login_column( $columns ) { $columns['last_login'] = 'Last Login'; // column ID / column Title return $columns; } function misha_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 = 'j M, Y'; $output = $last_login ? date( $date_format, $last_login ) : '-'; } return $output; }
Sau đó tải lại trang, Kết quả chúng ta có được giống như sau:
Thêm xắp xếp (Sortable) cho cột
Bước này không bắt buộc nhưng khá hữu ích vì nó cho phép bạn xắp xếp thời gian nếu bạn muốn biết người sử dụng nào đang làm việc tích cực ở gần đây.
Lưu ý, không có 1 quy tắc chung khi bạn đang thực hiện sắp xếp cột, đối với cột tùy chỉnh user ‘Last Login’ cũng có thể có thể thi hành theo cách dưới đây, nhưng nó hoàn toàn khác với custom post type.
add_filter( 'manage_users_sortable_columns', 'misha_sortable_columns' ); add_action( 'pre_get_users', 'misha_sort_last_login_column' ); function misha_sortable_columns( $columns ) { return wp_parse_args( array( 'last_login' => 'last_login' ), $columns ); }); function misha_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; } );
Chúc bạn thành công!
Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng phương pháp đăng ký nhận bài viết mới ở bên dưới và đừng quên chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng có thể có thể theo dõi blog này trên Twitter và Facebook
Bài viết Thêm cột “Last Login” user đăng nhập lần cuối trong WordPress được tổng hợp và biên tập bởi: dinhthuanit.com. Mọi ý kiến đóng góp và phản hồi vui lòng gửi Liên Hệ cho dinhthuanit.com để điều chỉnh. dinhthuanit.com xin cảm ơn.