Hiển thị lần đăng nhập cuối cùng của người dùng

Ngày đăng: 21 - 03 - 2022 Lượt xem: 73 lượt

Bạn đang phát triển một website có tính năng quản lý người dùng? Và bạn có nhu cầu muốn biết được lần cuối người dùng đăng nhập là lúc nào.

Nếu bạn cần một tính năng như vậy, thì bài viết này dành cho bạn. Nhưng trước hết, đây là kết quả bạn đạt được sau khi xem hết bài viết này:

Lưu trữ lần đăng nhập cuối cùng của người dùng

Trước khi hiển thị ngày hoặc giờ đăng nhập cuối cùng, chúng ta phải thu thập nó trước. WordPress không thu thập hoặc lưu trữ dữ liệu này theo mặc định, vì vậy chúng ta phải tự làm điều đó.

Có hai cách đăng nhập trong WordPress:

  • Dựa vào form wp-login.php
  • Hoặc dựa vào hàm wp_signon()

May mắn là, action hook wp_login hoạt động cho cả hai!

add_action( 'wp_login', 'hk_collect_login_timestamp', 20, 2 );

function hk_collect_login_timestamp( $user_login, $user ) {

	update_user_meta( $user->ID, 'last_login', time() );

}

Tất cả những gì bạn cần làm là thêm đoạn code trên vào file functions.php của theme hoặc child theme. Kể từ thời điểm này, tính năng thu thập dữ liệu đăng nhập lần cuối của người dùng mới bắt đầu được kích hoạt.

Hiển thị dữ liệu

Mình sẽ tạo một cột để hiển thị dữ liệu ở trang “Tất cả người dùng”. Để làm được điều này, mình sẽ sử dụng đoạn code dưới đây:

add_filter( 'manage_users_columns', 'hk_add_last_login_column' );
add_filter( 'manage_users_custom_column', 'hk_last_login_column', 10, 3 );

function hk_add_last_login_column( $columns ) {

	$columns['last_login'] = 'Last Login'; // column ID / column Title
	return $columns;
	
}

function hk_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 khi hoàn thành, bảng thành viên sẽ xuất hiện một cột mới có tên “Đăng nhập gần nhất”.

Làm cho cột dữ liệu có thể sắp xếp được

Mình nghĩ rằng đây là một bước khá hữu ích vì nó cho phép bạn nhanh chóng tìm ra những ai đã đăng nhập gần đây. Sử dụng đoạn code bên dưới để cột “Đăng nhập gần nhất” có thể sắp xếp được.

add_filter( 'manage_users_sortable_columns', 'hk_sortable_columns' );
add_action( 'pre_get_users', 'hk_sort_last_login_column' );

function hk_sortable_columns( $columns ) {

	return wp_parse_args( array(
	 	'last_login' => 'last_login'
	), $columns );

}

function hk_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;

}

Lời kết

Mình hi vọng bài viết này sẽ phần nào giúp bạn quản lý được người dùng trên trang hiệu quả hơn. Đặc biệt là với những bạn đang phát triển website liên quan đến việc phát triển cộng đồng.

Nếu các bạn thấy bài viết này giúp ích cho bạn, hãy bình luận và chia sẻ bài viết này. Ngoài ra, bạn có thể theo dõi chuyên mục Thủ thuật WordPress và follow Facebook để biết thêm nhiều kiến thức mới nha.

5 2 votes
Đánh giá bài viết

guest
0 Góp ý
Inline Feedbacks
View all comments

Bài viết liên quan

Top 5 starter theme dành cho lập trình viên WordPress

Top 5 starter theme dành cho lập trình viên WordPress

16 - 06 - 2022

Nếu bạn là một lập trình viên WordPress nhưng không có nhiều thời gian để xây dựng theme từ...

Cách xoá tiền tố category trên đường dẫn WordPress

Cách xoá tiền tố category trên đường dẫn WordPress

14 - 04 - 2022

Khi bạn truy cập vào một danh mục WordPress, đường dẫn của danh mục đó sẽ có chứa một...

Xoá bài viết trong trang quản trị WordPress với AJAX

Xoá bài viết trong trang quản trị WordPress với AJAX

05 - 04 - 2022

Bạn có muốn xoá bài viết trong trang quản trị WordPress mà không cần tải lại trang không? Nếu...

Tạo bộ lọc theo tác giả và taxonomy trong trang quản trị WordPress

Tạo bộ lọc theo tác giả và taxonomy trong trang quản trị WordPress

26 - 03 - 2022

Điều gì sẽ xảy ra nếu bạn có quá nhiều bài đăng trên blog của mình? Làm cách nào...

Chuyển hướng người dùng đến trang trước khi đăng nhập trong WordPress

Chuyển hướng người dùng đến trang trước khi đăng nhập trong WordPress

23 - 03 - 2022

Bạn muốn chuyển hướng người dùng đến trang họ đang xem trước khi đăng nhập. Có thể sẽ có...

Thay đổi logo WordPress ở trang đăng nhập mà không cần plugin

Thay đổi logo WordPress ở trang đăng nhập mà không cần plugin

19 - 03 - 2022

Thông thường, WordPress cung cấp logo mặc định trên màn hình Đăng nhập, Đăng ký, Quên mật khẩu... Nhưng...

0
Would love your thoughts, please comment.x