Enrolment: Course completed enrolment

Maintained by RenaatRenaat Debleu
Enrol users upon completion of a course.
556 sites
49 fans
Current versions available: 4

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.


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.


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



Screenshot #0
Screenshot #1


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

Comments RSS

Show comments
  • Renaat
    Thu, Feb 14, 2019, 5:24 AM
    Hello JCarlos,

    You can modify the code in the enrol/coursecompleted/lib.php file: public function allow_unenrol(stdClass $instance) { return true; } As a result the unenrol option should be available.

    But, when administrators bulk enrol users who completed past courses, those users will be re-enroled.

  • Renaat
    Mon, Feb 25, 2019, 4:44 PM
    Update your student role to allow "Unenrol self from the course" (enrol/coursecompleted:unenrolself)
  • Picture of Filippo Caburlotto
    Tue, Mar 26, 2019, 3:47 PM
    Hi Renaat,
    above all thank you for the plugin.
    Just a question: is it possible to enroll students in different courses according to their score in a course? For example student A course completed 50% of score enrolled in course A; students B course completed 70% of score enrolled in course B and so on...
  • Renaat
    Wed, Mar 27, 2019, 4:55 PM
    Hi Filippo,

    It is NOT possible to enroll students in different courses according to their course results. But this idea seems great idea for a GSOC....

  • Picture of Dag Klimas
    Wed, Apr 10, 2019, 11:24 PM
    Hi Renaat,

    many thanks for your development!

    Do you have any idea how I can implement the following situation?
    * There are two starting courses: Start 1 and Start 2.
    * There is a follow-up course A which requires Start 1 OR Start 2. That's what I got solved.
    * But now there is the follow-up course B, in which only have to enrol, if Start 2 and follow-up course A has completed.

    Thanks for your time, Dag
  • Renaat
    Thu, Apr 11, 2019, 4:50 PM
    HI Dag,

    My first advise would be: "Keep things simple!", it is all to easy to create a situation where a user never is enrolled into a course or can complete a course.

    But if you want to enrol users in course B after they complete course A AND start 2 you can add the enrolment method to course B and choose course A as the course parameter. Add in course A the completion of start 2 as a course completion requirement.

    So when a user completes start 1, he/she will be enrolled into course A.
    When a user completes start 2, he/she will be enrolled into course A.
    When a user completes course A (this will only happen when start 2 is completed), he/she will be enrolled into course B.
    But beware that users who only completed start 1 only will be able to complete Course A if they take start 2.

  • Picture of Dag Klimas
    Thu, Apr 11, 2019, 6:03 PM
    Hi Renaat,

    thank you for your answer!

    @My first advise would be: "Keep things simple!": +1
    I use Moodle since 15 years, and I understand you wink

  • Picture of Filippo Caburlotto
    Mon, Jun 10, 2019, 6:45 PM
    Hi Renaat,
    I'm using your plugin and everything works fine but a little problem.
    I have a course with completion criteria based on a specific evalutation; all the students are enrolled in the new course according to the criteria but two.
    Two students did'nt reach the score I fixed as minimum in the first course but they have been enrolled the same in the new course. What is really odd is that it didn't happen with all the students who didn't reach the minimum, but only with two of them (they have different scores). Any idea? Is it a bug?
    Thank you.
  • Renaat
    Mon, Jun 10, 2019, 9:37 PM
    Hi Filippo,

    THX for your comments.

    This plugin does not look at scores nor grades, but only triggers when a course_completed event happens inside Moodle. So if 2 students are enrolled when they shouldn't, you have to
    * review if both students are enrolled by this plugin (/user/index.php?id=???) Modifying the enrolment will reveal the method and moment.
    * review the course completion report (report/completion/index.php?course=???). Did they complete the course? Hoovering the checkbox in the last column will tell you when and why this happened.

    Can you confirm both students did NOT completed the course AND are enrolled by this plugin? If the course is considered completed for both users, you have to review the logic of the completion criteria (/course/completion.php?id=???).
  • Picture of Filippo Caburlotto
    Tue, Jun 11, 2019, 2:55 PM
    Hi Renaat,
    I can confirm you that the 2 students didn't complete the course, because of the logic of completion. If the logic haven't been corrected all the users should be enrolled in the new course, but it happened only with two of them (two out of 15 who didn't accomplish the logic criteria).
    Thank you.
  • Renaat
    Tue, Jun 11, 2019, 10:50 PM
    Hi Filippo,

    A bug can be reproduced, but to make this happen, I will need all the facts. Minimum, I need screenshots (with private date blurred) of
    * all enrolment methods
    * detailed enrolment data of both students
    * grade overview report
    * full course completion report
    * logs when both users were enrolled

    DId the users complete another course? Was the pass grade originally 0 the moment you enabled course completion? Did you later adjust the grading? Were those students re-enrolled during the course? Was there a course reset?

    I can find several reasons why something could go wrong, but I will need all data to check if this a bug or not. Can you provide all data in the [bug tracker](https://github.com/ewallah/moodle-enrol_coursecompleted/issues bug tracker)?

  • Picture of wilder Gaspar
    Fri, Sep 27, 2019, 3:03 AM
    Hi Renaat,

    Your plugin has saved my life, I installed it and I created and configured two sample to run some tests. But after I have enrolled in the first course, I was not enrolled automatically in the second course. This message is displayed: "You will be enrolled in this course when you complete course". Can you help me for this problem? I have already cleaned the cache and checked all configuration, but I'm not getting enrol in the second course.
  • Renaat
    Fri, Sep 27, 2019, 4:12 PM
    Hello Gaspar,

    You will only be enrolled in the second course when you complete course 1, not before. Have a look at the course completion report of course 1, there you will see that you did not complete course 1 (yet).
  • Picture of Eman I.S
    Mon, Nov 4, 2019, 3:28 PM
    Hi Renaat,
    Many thanks for this plugin!
    I installed and configured it but it doesn't work upon course completion. What shall I check?
  • Renaat
    Mon, Nov 4, 2019, 4:27 PM
    Hi Eman,

    Can you show me the course completion report?

1 2 3
Please login to post comments