Quản lý thời gian hoạt động cho Vip Member trong WordPress
Quản lý thời gian hoạt động cho Vip member trong Wordpress không cần dùng đến plugin! dễ dàng sử dụng và tùy biến
Vnkings Mới gặp 1 câu hỏi trong Page WordPress Nâng Cao hỏi cách chỉ cho phép thành viên thuộc nhóm Vip được xem nội dung trong bài viết, ngoài ra còn đặt thời gian hết hạn cho thành viên Vip đó. Thấy vấn đề khá hay nên mình nghĩ nên tạo 1 bài về vấn đề này : Quản lý thời gian hoạt động cho Vip member trong WordPress
Có các vấn đề chính cần giải quyết:
- Tạo nhóm thành viên Vip
- Thêm thời gian hết hạn vào thành viên vip đó.
Cùng giải quyết các vấn đề trên:
Đầu tiên bạn tạo 1 nhóm Vip Member
Thêm đoạn code bên dưới vào file functions.php
$vnkings_new_user = add_role('vipuser', __( 'Vip User' ), array( 'read' => true, 'edit_posts' => true, 'delete_posts' => false, ) );
Thêm trường thời gian cho thành viên đó
(đây là trường bạn nhập vào và sẽ có dạng ngày-tháng-năm như trong hình)
Thêm đoạn code bên dưới vào file functions.php
function add_fields_user($profile_fields){ $profile_fields['vipend'] = 'Thời gian hết Vip'; return $profile_fields; } add_filter('user_contactmethods', 'add_fields_user');
Cuối cùng ở file Single.php chính là bài viết sẽ hiển thị cho thành viên VIP hay không bằng đoạn code dưới đây
<?php $current_user = wp_get_current_user(); $vnkingsuserid= $current_user->ID;?> <?php $ngaysosanh = get_the_author_meta( 'vipend', $vnkingsuserid ); $ngayhomnay = date("d-m-Y"); ?> <?php if(current_user_can('vipuser')) { ?> <?php if (strtotime($ngayhomnay) > strtotime($ngaysosanh)) { ?> Bạn đã hết VIP .... <?php } elseif (strtotime($ngayhomnay) == strtotime($ngaysosanh)) { ?> Hết hôm nay bạn sẽ không xem được bài này vì hết Vip ... <?php }else{ ?> Nội dung cần hiển thị cho Vip Member .... <?php } } ?>
Giải Thích:
$current_user
: lấy thông tin thành viên đang đăng nhập$vnkingsuserid
: lấy id của thành viên đang đăng nhập$ngaysosanh
: từ id bên trên lấy ra được trường ngày tháng năm của thành viên sẽ hết hạncurrent_user_can('vipuser')
: kiểm tra có phải Vip member hay khôngCác if else
: kiểm tra điều kiện ngày hiện tại và ngày hết hạn để hiển thị nội dung mong muốn
Cùng kiểm tra kết quả nhé:
Chúc các bạn thành công!
Bài liên quan
- Đưa trình soạn thảo WordPress 5.0 về phiên bản cũ không dùng plugin
- Thêm chức năng lọc theo Meta Fields trong Dashboard WordPress
- Sửa lỗi không hiển thị Page Template để chọn khi tạo Trang ở WordPress version 4.9
- Thêm reCAPTCHA vào form đăng nhập đăng ký WordPress
- Hiển thị bài viết mới theo Category trong WordPress
- Tự tùy biến trang Single theo Category trong WordPress
- Tạo giao diện khác nhau cho từng Category trong WordPress
- Thêm văn bản mặc định vào khung soạn thảo wordpress
Tuyệt vời quá. Kiếm tiền bằng cách này được đó :))
Chức năng này mình viết ra đúng là để giải quyết vấn đề kiếm tiền qua Vip user (có thời hạn) của 1 số bạn đang cần
hình như tài khoản vip cũng chỉnh sửa được số ngày hết hạn vip vậy làm sao quản lý nhỉ ?
Trước khi làm chức năng này bạn cần chèn 1 đoạn function này vào file functions.php
Để chỉ Admin mới vào được trang Wp-admin thôi bạn nhé,
Ngoài ra bạn có thể tham khảo cách tạo trang profile cho thành viên ở bài viết này
https://vnkings.com/tao-trang-sua-va-xem-thong-tin-thanh-vien-wordpress.html
cám ơn bạn rất hay 😀
Mình muốn ẩn thanh quản lý đó đi khi thành viên đăng nhập có được không
và tạo 1 widget để cho thành viên chỉnh sửa thông tin của mình ở đó
mình ẩn được thanh quản lý đi rồi hihi 😀
Mình có vài vấn đề cần hỏi:
1.hết thì làm sao để tự chuyển về thành viên bình thường
2. tạo menu đăng ký, đăng nhập, chỉnh sửa thông tin các nhân cho thành viên như của bạn ( mình không biết code nên muốn hỏi xin css luôn )
Cám ơn đã hướng dẫn mình !
Bạn cho thư viện Bootstrap vào là hiện CSS như demo bạn nhé
thư viện Bootstrap lấy ở đâu vậy bạn 😀 bạn có thể hướng dẫn cụ thể không
Cám ơn bạn !
Đoạn code này mình không thấy có tác dụng vì mình thử chuyển bằng tay tài khoản vip về thành viên đăng ký không thấy thông báo 🙂
Nội dung cần hiển thị cho Vip Member ….
Code này dành cho thành viên VIP và ngày hết hạn cụ thể bạn nhé. có nghĩa là họ sẽ có vip nhưng nếu quá ngày được xem thì họ sẽ không xem được. Còn bạn muốn hết hạn tự chuyển về thành viên thường thì có lẽ mình sẽ tạo 1 bài hướng dẫn riêng về vấn đề này
mình thử chỉnh hết hạn vip nhưng nội dung vẫn hiển thị mà bạn
mình vừa thử tạo file author.php nhưng hình như do code này :
function vnkings_redirect_user(){
if ( !defined( ‘DOING_AJAX’ ) && !current_user_can(‘administrator’) ){
wp_redirect( site_url() ); exit;
}
}
add_action( ‘admin_init’, ‘vnkings_redirect_user’ );
nên chỉnh sửa được thông tin cá nhân của thành viên vip
Đoạn này của bạn chỉ là khi đăng nhập nếu không phải là admin thì sẽ được chuyển ra trang chủ chứ không phải trang wp-admin bạn ạ.
Bạn cũng có thể xóa đoạn code trên để test lại
thế sao lại không được nhỉ lạ quá @@
Bạn tạo cho mình 1 nick test nhé
bạn có skype ko cho mình xin tiện trao đổi 😀
Hay
(y)
Cho mình hỏi ví dụ mình muốn query tất cả bài viết của nhóm vip này ra thì sao nhỉ
Bạn có thể dùng query này:
em xin code khi hết hạn bài viết và đăng nhập mới xem đc bài viết ạ thì không xem được bài viết ạ em xin cảm ơn
A ơi e muốn thành viên trong web của e có nhiệm vụ chung giống nhau và bắt buộc phải làm hết trong ngày. Nếu ko làm sẽ bị khóa tk lại thì làm sao ạ e cầm gấp quá a giúp e với
Mình cần lấy tên thành viên đang đăng nhập và chèn vào trong một input form thì phải làm như thế nào bạn?
Chào bạn, bạn muốn lấy theo thời gian thực, hay theo phiên đã lưu tại Database?
Mình cần lấy theo thời gian thực.