Search code examples
drupaldrupal-7

Drupal | online training | monthly member ship


Is there any specific module will full my below requirement

  1. Allow admin to create course, course contain 5 slots, each slot time duration is one month
    1. Need to integrate the payment gateway
    2. Assume if student paid first lot course payment, system allow this student to view the video, after one month slot time get exipre
    3. If the student paid for 2md slot, the system should allow this student to view the slot 1 and slot 2 video
    4. Assume if he failed to pay the 3rd slot, system should not allow him view any slots,

Please suggest way to do the above requirement in drupal.

Keys: Drupal, lms, payment gateways, user restriction


Solution

  • I recommend Ubercart and Nodeaccess.

    In the context of each of your requirements, you may set it all up the following way:

    1. Allow admin to create course, course contain 5 slots, each slot time duration is one month

    Create user roles for each of your 5 slots and grant access to the video content (or whatever other content you have) accordingly. So you will have 5 different user roles (apart from the authenticated user role) each user role having access to its own slot.

    1. Need to integrate the payment gateway

    Enable uc_payment, uc_credit, uc_paypal and any other Ubercart Payment submodules. Configure your payment gateway under admin/store/settings/payment

    1. Assume if student paid first lot course payment, system allow this student to view the video, after one month slot time get exipre

    Configure product settings on the admin/store/settings/products:

    • Check ON the previously created 5 user roles as Product roles and set the DEFAULT ROLE EXPIRATION to 30 days.
    • Add products 5 products representing your 5 slots on node/add/product (the Product content type is created when installing Ubercart). Set the "Sell price" and tick off the "Product is shippable" option. Save.
    • For each of the created products, go to edit form and click on "features" tab (node/%/edit/feature). Select "Role assignment" on the "Add a new feature" dropdown and click Add. Select the Role you would like to assign and Save.

    Thus, you will have 5 products available to purchase. The user will be added to the corresponding user role upon successful payment, hence, will have access to the corresponding slot.

    1. If the student paid for 2md slot, the system should allow this student to view the slot 1 and slot 2 video

    Now this can be achieved by adding more more user roles (as described in item 3) for each of the subsequent products. So you will end up:

    • On purchasing "Product 1" the user will be assigned "Role 1".
    • On purchasing "Product 2" the user will be assigned "Role 1, Role 2".
    • On purchasing "Product 3" the user will be assigned "Role 1, Role 2, Role 3".
    • etc..
    1. Assume if he failed to pay the 3rd slot, system should not allow him view any slots,

    You may use nodeaccess to restrict access to the subsequent slots. Say:

    • The user with Role 1 will have access to purchase Product 2;
    • The user with Role 2 will have access to purchase Product 3;
    • etc...