Course credit enrolment

Enrolment ::: enrol_credit
Maintained by Picture of Stefan ScholzStefan Scholz
The easiest e-commerce solution for moodle: Use credits to buy courses. Or sync credits with Level Up experience points to create rewards within moodle.
Latest release:
107 sites
19 fans
Current versions available: 1

Credit Enrolment for Moodle

While there are existing solutions to sell courses in moodle, they only cover the requirements to a certain extent: Some of the solutions (e.g. the PayPal and Stripe extensions) work great when courses are sold to individuals. Other solutions (e.g. integrations with courseware, woocommerce etc.) are much more feature rich and provide the full e-commerce experience, including seo, many billing options, invoicing, discounts etc. However, the implementation, maintenance and running cost of such a solution is a lot higher.

Our solution targets medium sized companies who want to sell their courses to business clients (instead of individuals) by introducing a very simple credit system. Business clients can buy a certain number of credits using the existing payment/invoicing processes already in place at all customers (not within moodle). These credits can be assigned to users in moodle (manually or via upload) and then used to “buy” courses. Thus, implementation is basically done in minutes.

Credit enrolment is built as a lightweight enrolment plugin and is available for free here in the Plugins directory.

Key features:

  • store credits in the user’s profile
  • assign a price (=number of credits required) for a course
  • enrol into the course by deducting the required credits from the user who enrols (only if enough credits are available)

Gamification: Rewarding users with XP Enrolment for Level Up

The plugin can also be used with a small add-on to reward users by letting them use their experience points (XP) collected using the popular Level Up Plugin to buy courses. In addition to the motivational effect of gamification, you can now incentivize users for their efforts (=XP) by allowing them to enrol respectively “buy” additional courses using their XP. The features of this plugin are:

  • use your Level Up Experience Points as currency
  • assign a price (=number of experience points required) for a course
  • enrol into the course by deducting the required experience points from the user who enrols

Potential privacy issues



Screenshot #0
Screenshot #1
Screenshot #2


Picture of Stefan Scholz
Stefan Scholz (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Picture of Nestor Acosta
    Sat, Sep 26, 2020, 12:04 AM
    Hi stefan.

    thank so much for your help to this community
    I have a question, How I do to show or print in the user's dashboard the credits balance.?

  • Picture of Tawone Promdecha Education
    Thu, Oct 22, 2020, 9:53 PM
    I can't set up. Please help me.
  • Picture of Stefan Scholz
    Tue, Nov 3, 2020, 5:34 AM
    @nestor: thank you! we've created another plugin for that – it's called dash. It's a free block and can be found here:

    @tawone: the documentation linked above explains all steps required for the setup. if you need additional help, please contact us directly.
  • Picture of Peter Schmitz
    Thu, Dec 3, 2020, 2:58 AM
    Stefan, potential bug. Moodle 3.8.6, latest plugin version. Phenomenon: Student has 100 credits, course price is 50 credits. Students purchases course, then balance is -50 credits (minus 50) and indeed he is not able to purchase any other courses, getting the message that credit balance is insufficient, so in fact -50 is recorded in data base. Any ideas?
  • Picture of Stefan Scholz
    Thu, Dec 3, 2020, 4:44 AM
    Hi Peter, can you reproduce this behaviour? Has this (or something similar) happened previously? Feel free to answer either here or on GitHub, whatever you prefer.
  • Picture of Emil Agayev
    Mon, Dec 28, 2020, 4:13 AM
    Hi, why it is not possible unenrol user manually from enrolled users page of course ? and second question, once enrollment duration is expired, even though user has more credits to purchase, it is impossible to purchase again same course, what is problem with that?
  • Picture of mohammed minshawy
    Sun, Feb 28, 2021, 1:24 PM
    is it possible for user to repurchase the course, as I use this plugin with duration time 2 H to track how many classes the user took online on zoom (also added as plugin in the course).

    problem is: once enrollment duration is expired, even though user has more credits to purchase, it is impossible to purchase again same course, what is problem with that?
  • Picture of Trevor Glue
    Wed, Mar 17, 2021, 7:43 PM
    Hi Stefan - is it possible to set credits at the level of the student's company / cohort rather than only having credits in the individual level. Also is it possible to have part credits used used e.g. 0.5 - we very keen to enable these features if possible (and happy to discuss further).
  • Picture of Peter Schmitz
    Wed, Mar 17, 2021, 8:25 PM
    " set credits at the level of the student's company / cohort rather than only having credits in the individual level."

  • Picture of Trevor Glue
    Wed, Mar 17, 2021, 8:45 PM
    hey Peter - thanks for that quick comment - how do i set it at the cohort level?
  • Picture of Peter Schmitz
    Wed, Mar 17, 2021, 9:16 PM
    Hi Trevor I am a user like you, I am just supping your request. I don't think that this is avlbl right now, since the credit is really stored in the 'user_info_data' so there is no relation to any cohort or Company field in another table, at least that I can see. Stefan will be able to comment far more competently, but so far I think that's a no I'd like to see turned into a yes, although I can see a wide range of management issues to be addressed with that. Your best bet at this stage is to export the cohort you would like to assign credits to and then bulk re-import them with the profile field 'credits' added, making sure you change only new data sets.
  • Picture of Group TekZone
    Thu, May 6, 2021, 1:14 AM
    Thank you for this great plugin. One question: right now my understanding is that the credits are added manually to the user profile. Is there a way to sell credits so that upon purchase, the user's credits are added to their profiles automatically?
  • Picture of Peter Schmitz
    Thu, May 6, 2021, 1:59 AM
    Cohort Level Credit Scenarios
    Scenario-1: Cohort gets allocated 1.000 credits. Then whenever someone in the cohort 'buys' anything on the platform, it is deducted from total cohort credit. Potential Problem: Someone is a member of more than one cohorts, each with their own credit allocation. Which cohort to deduct any purchases from?

    Scenario-2: Cohort is just a meta receiver of credits, immediately distributing any credits evenly to its constituents who then individually spend any credits rec'd from the cohort. Potential problem: What to do with new cohort members? How to manage their credit allocation (if any) on a cohort level. Could of course always endow them individually.

    Most common use case for us would be a client buying access to a selection of courses by buying X credits. These credits then need to go to that clients cohort to ensure this client's learners get access to the relevant courses.

    We are in the commercial environment. This might need a lot more thought, but one could certainly find more use cases in the academic environment.
  • Picture of Stefan Scholz
    Thu, May 6, 2021, 2:18 AM
    Hi Peter, thanks!

    My gut feeling would be that scenario 1 is more likely – and surely easier to implement.
    When we add cohort credits as a feature, it would probably rather be this.

    Regarding your "common use case": why use credits for this approach? You could create a cohort for the client and create self enrolment instances for each course they bought. What they pay depends on the number of courses and the number of cohort members. That would 100% rely on core features (which I think is a good thing!).
    Don't get me wrong, I don't mind if you use credits/our plugin at all, I'm just curious.

  • Picture of Peter Schmitz
    Thu, May 6, 2021, 6:22 AM
    There might be 50 courses on the platform but the client might just purchase say five courses per user. Corporate might not want to prescribe which specific courses students study, just mandate that everybody study 5 courses as a KPI on their balanced scorecard. Service people might have other interests than sales people might have other interests than programmers. With credits we can cut them loose and make them assemble their own curriculum and learning path of 5 out of 50 courses , reducing learning admin, enrolment effort etc.
1 2
Please login to post comments