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: 587 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 3 votes
Đánh giá bài viết

Nhận thông báo
Nhận thông báo cho
guest

0 Góp ý
Inline Feedbacks
View all comments

Bài viết liên quan

Hướng dẫn chống copy trên WordPress đơn giản, hiệu quả

Hướng dẫn chống copy trên WordPress đơn giản, hiệu quả

13 - 10 - 2022

Chống copy trên Wordpress là điều mà chúng ta cần phải quan tâm nếu không muốn sự sáng tạo...

2 cách kiểm tra dung lượng hosting đơn giản dễ thực hiện nhất

2 cách kiểm tra dung lượng hosting đơn giản dễ thực hiện nhất

01 - 10 - 2022

Kiểm tra dung lượng hosting là điều cần phải làm khi bạn quản trị một website. Nếu dung lượng...

Genesis Framework là gì? Top 6 Genesis Framework tốt nhất hiện nay

Genesis Framework là gì? Top 6 Genesis Framework tốt nhất hiện nay

29 - 09 - 2022

Genesis Framework là gì? Đây là một khung Theme Framework được StuidoPress phát triển. Genesis Framework đem lại cho...

Hướng dẫn chỉnh sửa HTML trong WordPress đơn giản nhất

Hướng dẫn chỉnh sửa HTML trong WordPress đơn giản nhất

13 - 09 - 2022

Chỉnh sửa HTML trong WordPress là một cách hữu hiệu để tùy chỉnh giao diện website theo ý mình,...

Hướng dẫn 2 cách trỏ domain về host cPanel đơn giản nhất

Hướng dẫn 2 cách trỏ domain về host cPanel đơn giản nhất

13 - 09 - 2022

Trỏ domain về host cPanel là điều mà các bạn lập trình viên cần phải thực hiện. Bởi vì...

Cách chèn Google Form vào WordPress chi tiết nhất

Cách chèn Google Form vào WordPress chi tiết nhất

12 - 09 - 2022

Google Forms là một công cụ vô cùng tuyệt vời để thu thập thông tin của người dùng thông...

0
Would love your thoughts, please comment.x