Nếu bạn muốn thêm trạng thái VIP cho tài khoản WordPress, bài viết này sẽ giúp bạn.

Trạng thái VIP cho tài khoản WordPress sử dụng ACF

Plugin cần thiết cho chức năng này là Advanced Custom Fields (ACF), tham khảo bài viết này:

Tạo dữ liệu

Bạn cần tạo một trường để lưu dữ liệu thời hạn VIP cho người dùng, chỉ có Administrator mới xem và chỉnh sửa được, như sau.

Phương thức xử lí

Tại functions.php, các bạn thêm các phương thức gán VIP, tính thời hạn VIP còn lại và kiểm tra tài khoản có VIP hay không như sau.

/*
 * Gán VIP cho người dùng
 */
function add_vip_for_user($days, $user_id) {
	date_default_timezone_set('Asia/Ho_Chi_Minh');
	$this_time = date('Y/m/d H:i:s', time());
	$next_x_days = date('m/d/Y', strtotime($this_time . ' + ' . $days . ' days'));
	update_field('vip_timeout', $next_x_days, 'user_' . $user_id);
}

/*
 * Tính thời hạn VIP còn lại
 */
function count_vip_left($user_id) {
	$this_time = time();
	$vip_ex = get_field('vip_timeout', 'user_' . $user_id);
	if (!$vip_ex) $vip_ex = '01/01/2021';
	$time_left = strtotime($vip_ex) - $this_time;
	if ($time_left < 0) $time_left = 0;
	return ceil($time_left / (60 * 60 * 24));
}

/**
 * Kiểm tra tài khoản có phải VIP
 */
function is_vip($user_id) {
	$is_vip = false;
	date_default_timezone_set('Asia/Ho_Chi_Minh');
	$this_time = date('m/d/Y', time());
	$vip_ex = get_field('vip_timeout', 'user_' . $user_id);
	if (!$vip_ex) $vip_ex = '01/01/2021';
	$vip_ex = date('m/d/Y', strtotime($vip_ex));
	if (strtotime($this_time) <= strtotime($vip_ex)) $is_vip = true;
	return $is_vip;
}

Chúc các bạn thành công!

5/5 (3 bình chọn)