Course completed enrolment

Enrolment ::: enrol_coursecompleted
Maintained by RenaatRenaat Debleu
Enrol users upon completion of a course.
Latest release:
1483 sites
80 fans

With this plugin it is possible to create a chain of courses. After completion of a course, the student is automatically enrolled in one or more other courses. But it is also possible to give a user another role in the same course when he/she completes the course.


As a teacher go to the course in which students will be enrolled in the future.  Navigate to Course Administration > Users > Enrollment Methods and add the Course Completed Enrollment method. Fill in the role - duration - start date - end date, and search for the course that needs to be completed.  Save your changes and do an extra check if course completion is enabled and working in the required course.

There is a nice and simple explanation by Mary Cooch how to use this plugin.

Course completion is something else than doing all activities, read the docs on first!

Sample use

  • If you want to enroll users in course2 after they complete course1, you have to add the enrolment method to course2 and choose course1 as the course parameter.
  • If you want to enroll users in course2 and course3 after they complete course1, you have to add the enrolment method to course2 and course3, with course1 as the course parameter.
  • If you want to enroll users in course3 after they complete course1 OR course2,  you have to add 2 instances to course3, one with course1 as requirement, one with course2 as requirement.
  • If you want to enroll users in course 3 after they complete course1 AND course2,  you can add the enrolment method to course3 and choose course2 as the course parameter. Add in course2 the completion of course1 (course completion - Condition: Completion of other courses) as a course completion requirement.
  • If you want to give a user a new role in a course1, add the enrolment method to course1, choose course1 as the course parameter and pick the new role for the participant.


  • Administrators can bulk modify and delete users (works only when 1 instance is installed MDL-66652).
  • When a user is part of a group in the first course, the user can also be part of the group with the same name in the second course.


  • copy the content of the package into the enrol/coursecompleted directory under the root of Moodle.
  • log in as administrator and complete the installation
  • enable the plugin under Settings, Site administration, Plugins, Enrolments
  • configure the default settings for this enrolment method when it is added to a course

Read the Plugin installation guide for complete steps about installing a new plugin in Moodle.

travis Coverage Status


Screenshot #0
Screenshot #1
Screenshot #2


Renaat Debleu (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Renaat
    Mon, Oct 26, 2020, 11:36 PM
    Hi Emilio,

    you can translate the string with id "willbeenrolled" from the enrol_coursecompleted plugin using language customisaton (

    But of course, you can also help with the translation of this plugin on the Moodle translation site (, then your work will be available for all spanish users and you will earn some translation credits.

  • Picture of Emilio Zaidman
    Tue, Oct 27, 2020, 11:05 AM
    Didn't know it! Thanks R! I'll take a look and do it. Really appreciated! Best!
  • Picture of Emilio Zaidman
    Wed, Oct 28, 2020, 3:01 AM
    Done Renaat! I completed about 80% to the spanish version. Hope it's as helpful as the plugin was for me!
  • Renaat
    Thu, Oct 29, 2020, 4:17 PM
    Gracias Emilio, intentaré arreglar la parte restante.
  • Picture of Sergio Renato Aldana Alvarez
    Wed, Nov 4, 2020, 10:48 PM
    How can I massively activate the course enrollment that has expired?
  • Renaat
    Thu, Nov 5, 2020, 2:08 AM
    Sorry Sergio,

    I do not understand your queston. Can you explain your question - by steps - by comparing the behaviour in other enrolment plugins - ....

  • Picture of Sergio Renato Aldana Alvarez
    Sat, Nov 7, 2020, 12:07 AM
    Please go to participants list.
    At the very bottom of the page clic on "Select all participants"
    Click on the drowpdown list "on selected users"
    Select "edit enrollment of the selected users"
    You will get: User "xxxxxx" was removed from the selection.
    I want to extend enrollment to users with auto enroll method.
  • Renaat
    Sat, Nov 7, 2020, 12:53 AM
    Hello Sergio,

    I created issue [#20]( in the tracker.

  • Picture of Sergio Renato Aldana Alvarez
    Sat, Nov 7, 2020, 4:05 AM
    Thanks! another question: Enrollment of users who completed previous courses does not work

    version 3.6+ 2019070406
  • Renaat
    Sat, Nov 7, 2020, 6:03 PM
    Bug fixes for general core bugs in 3.6.x ended 11 November 2019 - bug fixes for security issues in 3.6.x ended 11 May 2020.
  • Picture of Jose Reyes
    Thu, Nov 12, 2020, 4:58 AM
    Is there a way to require multiple course completions before registering the user in a new course? The order in which the user completes the courses is not important so that's why a chain would not really work.
  • Picture of mami mori
    Fri, Apr 2, 2021, 6:28 PM
    Thanks for the nice plugin.

    I want to make when "Course Completion" is checked in course A, it will be enrolled in course B.

    Now, a student is checked the course completion in course A but not automatically enrolled in Course B.
    I check "Enrolment methods page" on course B, there is the icon of the person with the "+",next to "After completing course: A". When I click icon, dialog box show me the student, but I have to click enrol user bottom for enroll the student. It doesn't register them automatically.
    If you know why, please let me know.
    Thanks in advance.
  • Renaat
    Fri, Apr 2, 2021, 9:47 PM
    Hello Mami,

    indeed, this plugins does NOT work with course completions of the past. People who completed the course before you configured or enabled this plugin, have to be enrolled manually.

    This plugin only enrols people when a course completion event happens. On that moment the student is enrolled into a new course. The behavior is intentionally so, otherwise it would not be possible to unenrol a user from the second course (they would be re-enrolled again and again because they completed the course in the past).

  • Picture of mami mori
    Tue, Apr 6, 2021, 7:59 PM
    Thanks for your reply.
    I set it up again, and passed the quiz, and successfully completed the course.
    Then I waited for the cron to turn a few times.
    But unfortunately, the "auto" does not work.
    In the enrolment method ,there is "After completing course: A", and when I clicked on the person symbol on the right, it contained a person waiting to register. (In other words, it's not automatic, but it's ready to be linked)
    Have you ever encountered a case like this, using Moodle 3.9? It may be that other plugins are interfering?
    I have added the "Course completed enrolment" and "auto enrolment" plugins. Thanks
  • Renaat
    Wed, Apr 7, 2021, 12:08 AM
    Hello Mami,

    How did you uncomplete this user? When the user passed the quiz for a second time, he/she did not complete the course because for him/her the course was already completed before starting the quiz. One needs special tricks or a plugin to allow a user to re-complete a course (

    Try with another new user and see what happens. The first user was not enrolled into the other course because the course_completion event was never fired.

    This plugin is tested and working as expected in combination with the auto_enrolment plugin.
1 2 3 4 5 6
Please login to post comments