Course completed enrolment

Enrolment ::: enrol_coursecompleted
Maintained by RenaatRenaat Debleu
Enrol users upon completion of a course.
Latest release:
1711 sites
95 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
    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.
  • 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.
  • 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).

  • 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.
  • Mon, Apr 19, 2021, 11:16 PM
    Hello .. how can you change the automatic message? "You Will enrolled ...."
  • Renaat
    Tue, Apr 20, 2021, 12:07 AM Search for the identifier 'willbeenrolled'.
  • Tue, Apr 20, 2021, 4:41 AM
    Hello, how to set a registration closing date, without eliminating the registrations already made?

    I already tried to hide this enroll method but this blocks access to the students.
  • Renaat
    Wed, Apr 21, 2021, 4:55 PM
    Hello Sergio,

    Indeed, when you hide this enrol method, you disable the enrol method. A disabled enrolment method immediately blocks all access for the students. This works with this enrolment, but also with the manual - auto - ... enrolment methods.

    You should enable the enrolment end date to get what you want. As a result, people who complete a course after the enrolment end date, will not be enrolled in the new course, and the users who are already enrolled, stay active.
  • Fri, Apr 23, 2021, 1:33 AM
    Thanks for your reply, I have reviewed the self-registration plugin and it has a field to prevent new registrations without deactivating old ones.

    That is the behavior that I would like to have on auto enroll.
  • Tue, May 4, 2021, 10:16 PM
    I want the student to see all the required courses in the group, if they are not auto enrolled yet, since they did not complete the prior course; will they be able to see the next course in the My Courses list? I want them to be able to see the entire list of required courses.
  • Renaat
    Wed, May 5, 2021, 1:45 AM
    Hello Sam,

    This is difficult to archieve: this plugin waits to enrol a student until a course is completed, and the my course list only shows courses where the student is enrolled. Future courses are only courses where the student already is enrolled but with a later start date.

    Perhaps you can use a different enrol method and use the "Restriction by other course completion" to restrict the access to all sections? Then these courses will appear in the My Courses list, but people will not have access to the content, until they finish a specific course...
  • Sun, Jul 25, 2021, 1:50 AM
    thank you for this nice plug in
    I have a comment. It will be more useful if you can add conditions to this pug in like, if the student got a grade or pass mark or quiz percentage to eligible them to auto enroll to the second course
  • Renaat
    Sun, Jul 25, 2021, 2:04 AM
    Hello Jasim,

    you can configure the course completion to happen only if a student got a pass mark, after a certain date, after a certain duration, .... (see

    If you want that a student only gets enrolled when a certain percentage is scored, configure the activity completion for this module so it only is completed when the score is reached. Next configure your course completion related to the activity completion of the module. When the user scores succesfully, he/she will get the activity completed, next will be that the course is completed, and finally the user will be enrolled in a new course.

    So no need to add conditions to this plugin, as most conditions can be set in the course completion.

1 2 3 4 5 6 7
Please login to post comments