Upload enrolment methods

Admin tools ::: tool_uploadenrolmentmethods
Maintained by Eoin Campbell
This plugin allows administrators add the "Course meta link" and "Cohort sync" enrolment methods to a range of courses from a CSV file, and specify the role for the methods participants. They can also delete, enable or disable existing enrolment methods in a course.
Latest release:
554 sites
32 fans
Current versions available: 2

This plugin is an enhanced version of the Upload Metacourse links block plugin on which it is based. It also provides a good work-around for a long-standing issue with the Course upload facility whereby enrolment methods are not fully supported.

Use the command Site administration > Plugins > Enrolments > Upload enrolment methods to upload a CSV file containing lines of the form:

operation, enrolment method, target course shortname, parent course shortname or cohort idnumber, disabled, group[, role]

Note that version 1.2.x requires fields in a fixed order (as above) with no heading line, but version 1.3.0. now supports an initial heading line, and allows you specify the delimiter, e.g.


Each line of the file contains one record.
Each record is a series of data in any order separated by a specified delimiter.
All fields are required, except role, which is optional for backwards compatibility.
The allowed operations are add, del(ete), and upd(ate).
The allowed methods are 'meta' and 'cohort'.
The allowed disabled status values are 0 (enabled) and 1 (disabled).
The group field is the name of a group into which enrolled students should be placed. It will be created if it doesn't already exist.
The role field must be a valid role name such as editingteacher, student, etc.

This plugin enhances the original in that it is possible to disable existing enrolment methods in batch mode, and also that it can add an enrolment method to a course but leave it disabled.


Screenshot #0


Eoin Campbell (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS


  • Wed, Jul 15, 2020, 4:13 PM
    The warnings have nothing to do with the enrolment methods plugin. The themes you mention are all old and out of date, and not supported on Moodle 3.6. Remove them from your site. Autumn is also a very old theme and I doubt if it runs on 3.6 either. You're probably running something else.
  • Thu, Jul 23, 2020, 6:19 AM
    Thanks for sharing this plugin which should really be fixed in Moodle by default. I have two (or three) gripes though:
    * Please allow setting the csv delimiter to something different then ",". It’s a real pain to get comma separated csv-files out of Excel depending on region.
    * Our courses have a "–" (en-dash) in their shortnames which is removed by this plugin. The import then fails because the course isn’t found. Probably related to text encoding.
    * It would be nice and add some peace of mind to have a preview before finally importing enrollments.

    All 3 points are available with "Upload courses" and "Upload users". 1 and 2 would probably be fixed by moving to the csv library you mentioned some time ago. I really hope you or someone else will be able to implement this. Thanks again and best regards.
  • Wed, Aug 12, 2020, 3:36 PM
    Hi, I installed this plugin in site. It says in the notifcations that installation was successful but the plugin does't show in the >Manage Enrol plugins page. A link show in the Enrolment category but clicking on it returns an HTTP 500 error message. Any work around on this problem? Our site is moodle site version is 3.9.1. Thanks in advance.
  • Wed, Aug 12, 2020, 8:00 PM
    It isn't an enrolment method, so doesn't appear in "Manage enrol plugins". Go to "Site administration > Plugins > Upload enrolment methods" instead.
  • Fri, Aug 21, 2020, 11:05 PM
    Hi Eoin, I keep receiving result: "Cohort not found."
    Has anyone managed to add cohort sync in moodle 3.9.1?
  • Sat, Aug 22, 2020, 12:00 AM
    I think the problem might be that you have to match on the cohort ID number, not the name.
  • Sat, Aug 22, 2020, 12:10 AM
    Resolved! the first line has to contain the following field headings: operation,method,shortname,metacohort,disabled[,group,role] (don't comment them out)
    Thank you for the great tool Eoin smile
  • Sat, Aug 22, 2020, 12:28 AM
    I've just fixed the documentation on the Description to mention the heading columns, which I just added in version 1.3.0.
  • Tue, Oct 6, 2020, 10:18 PM
    I've install the plugin and it works fine.
    I've a question/suggesion:
    Now, use this plugin is only possible for "Site Administrator".
    Is there now a solution to allow this plugin for "site manager"?
    If no, my suggestion is to do that in a future version wink.
  • Tue, Feb 23, 2021, 6:26 AM

    Just wondering whether something can be tweaked to accompany two cohort syncs adds in one go via .csv file?

    Currently when doing this, it says the enrolment method already used and will not enrol the second cohort sync group.

    Is there a way around this?

  • Wed, Feb 24, 2021, 10:03 PM
    I checked this out and you can add 3 different cohorts to the same course in a single file, and you can also add the same cohort into 2 different courses in the same CSV file. Can you explain your problem a bit better?
  • Thu, Apr 8, 2021, 12:29 PM

    Sorry for the delay in replying. Basically we have multiple roles in our system in which we would like to allocate by using this method.

    Exam1 with student-cohort with role "RS" and "RI" these roles are different in their nature but have the required outcome.

    Because you cannot specify multiple roles in the upload without a second line. It says the "enrolment method already linked to course" pops up rejecting the action.

    Example 1 which works.

    Example 2 which fails
    add,cohort,Test1,Student-cohort,0,rs (Have also tried combinations of rs,ri in this line) nothing seems to work.

    I hope this makes sense.

    Kind Regards,

  • Wed, Apr 21, 2021, 11:01 PM

    Worked for a cohort method but in the metacohort column :
    Fail with cohort ID
    Success with cohort short name
  • Sun, Apr 25, 2021, 5:17 PM
    Hi Maxime, I would need more information to take a look at this. If you think its a bug, use the Bug tracker at https://github.com/ecampbell/moodle-tool_uploadenrolmentmethods/issues
  • Tue, Oct 5, 2021, 10:57 PM
    This is a very useful tool! Has anyone else seen error messages relating to the tool, when editing roles? Error message seems to suggest there a missing string in the languages file:

    Invalid get_string() identifier: 'uploadenrolmentmethods:add' or component 'tool_uploadenrolmentmethods'. Perhaps you are missing $string['uploadenrolmentmethods:add'] = ''; in C:\wamp64\www\moodle/admin/tool/uploadenrolmentmethods/lang/en/tool_uploadenrolmentmethods.php?
    line 353 of \lib\classes\string_manager_standard.php: call to debugging()
    line 7284 of \lib\moodlelib.php: call to core_string_manager_standard->get_string()
    line 2589 of \lib\accesslib.php: call to get_string()
    line 2434 of \lib\accesslib.php: call to get_capability_string()
    line 118 of \admin\roles\classes\capability_table_base.php: call to get_capability_docs_link()
    line 135 of \admin\roles\classes\capability_table_with_risks.php: call to core_role_capability_table_base->display()
    line 708 of \admin\roles\classes\define_role_table_advanced.php: call to core_role_capability_table_with_risks->display()
    line 257 of \admin\roles\define.php: call to core_role_define_role_table_advanced->display()

    I'm running Moodle 3.11 with the latest version of UploadEnrolmentMethods (v 1.3.4)
Please login to post comments