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

Quản lý thời gian hoạt động cho Vip Member trong WordPress
4.7 (94.29%) 14 votes
Quản lý thời gian hoạt động cho Vip Member trong WordPress

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

quan-ly-vip-member-vnkings4

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
quan-ly-vip-member-vnkings
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)
quan-ly-vip-member-vnkings2
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ạn
  • current_user_can('vipuser'): kiểm tra có phải Vip member hay không
  • Cá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é:
quan-ly-vip-member-vnkings3

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

Bài liên quan

    • 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

    • 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

      function vnkings_redirect_user(){
          if ( !defined( 'DOING_AJAX' ) && !current_user_can('administrator') ){
              wp_redirect( site_url() );  exit;
          } 
      }
      add_action( 'admin_init', 'vnkings_redirect_user' );
      

      Để 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 !

      • Đ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 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

  1. 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:

      <?php
      $wp_user_search = new WP_User_Query( array( 'role' => 'vipuser' ) );
      $vipusers = $wp_user_search->get_results();
      $vipuser_ids = array();
      foreach($vipusers as $vipuser) {
          $vipuser_ids[] = $vipuser->ID;
      }
      $args = implode(',', $vipuser_ids);
      query_posts("author=$args");
      ?>
      
  2. 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

Bình luận bài viết

Bạn có thể dùng các thẻ HTML này:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

X

Tạo live chat facebook cho website

Bạn cần tư vấn ?