Blocks: Enrolment Timer

Maintained by Picture of Learning Works Learning Works, Jeremy self portrait Jeremy FitzPatrick, Picture of Mathew May Mathew May
Block to show the user their remaining time enrolled in a course with live countdown and lots of settings to customise the display of this timer.
360 sites
47 fans

A block to show students the time remaining in their enrolment period including a live JavaScript countdown. Many settings have been included to customise the way the counter is displayed; in text, with numbers, customisable units and so on. This block was also developed as a base so it is easy to incorporate your theme overrides.

Emailing functionality is also included, You can enable students be notified by email that their enrolment is expiring in a set amount of days (Default 10). Email notifications can also be enabled to congratulate a student on passing the course. This email is sent after the student receives a required grade in the course_total grade.

Developed by LearningWorks Ltd


Screenshot #0
Screenshot #1
Screenshot #2


Picture of Learning Works
Learning Works (Lead maintainer)
Jeremy self portrait
Jeremy FitzPatrick
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Picture of Josiah Carberry
    Sun, 29 May 2016, 8:14 PM
    Using ver 3.0.0 2016031700 of enrollment timer on a moodle 3.1 platform (but the issue was also noted for moodle 3.0).
    When a participant clicks on a link to open a course, the page that is opened contains the following extraneous text, located in the page immediately after the line starting with "

    I note that the time at the end of that string is the current time displayed as if it were in am/pm format. In other words, when the local time is 14:10:09, then 02:10:09 is displayed, as in the example above, but without any the "pm".

    When the plugin is disabled, or when a user with admin rights is connected, that string is not displayed. I further note that the problem occurs with a variety of different themes.
  • Just me
    Fri, 8 Jul 2016, 2:45 PM
    Hi all.

    Can anyone please tell me if using this plugin creates a Java dependency on the end users browser? If so, are there any particular Java / JRE versions it needs?


    Alan W.
  • Picture of Cleiton Luiz de Sá
    Mon, 1 Aug 2016, 8:53 PM
    Uso a versão 3.0, e instalei esse plugin, mas não aparece o contador e, não aparece no curso.
  • Picture of Ziyad Muslat
    Fri, 14 Oct 2016, 2:09 AM
    I would like to change the font color for the timer numerals. In my installation they have white color, but I want the to be in black or at least have the squares around them showing in dark color as in the images above. How do I do that. I'm using moodle 3.1
  • Picture of Josiah Carberry
    Tue, 18 Apr 2017, 2:02 PM
    I have enabled email to students reminding them that enrollment is coming to an end. Admins are also getting an email every single day reminding them of this fact. Can this be reconfigured so as to get only one email, at the value of "Days to alert on" before the end of the enrollment period?
  • Picture of Learning Works
    Thu, 20 Apr 2017, 11:58 AM
    Hi Josiah,

    We have changed the logic so that the plugin will email anyone with an enrollment end date where the end date minus days to alert occurs between the current date and the next cron run. This means a user should only be mailed once per course.
    Regards, Mathew.
  • Picture of James Nicolson
    Sat, 3 Jun 2017, 1:41 AM

    I have just installed the plugin but noticed that it is throwing a console error. The plugin still seems to work as expected but because of this error it starts to impact other plugins that are also dependent on javascript. The error that is being generated is

    Uncaught Error: Mismatched anonymous define() module: function ($){var options=[],arrayKeys=[],timestamp=0,forceTwoDigits=false;$(document).ready(function(){function getDisplayedOptions(){var children=$('.block_enrolmenttimer .active .timer-wrapper').find('.timerNum');for(var i=children.length-1;i>=0;i--){var arrayKey=$(children[i]).attr('data-id');arrayKeys.push(arrayKey)}}
    function populateWithData(){for(var i=arrayKeys.length-1;i>=0;i--){var option=$('.block_enrolmenttimer .active .text-desc .'+arrayKeys[i]).text();options[arrayKeys[i]]=option}}
    function makeTimestamp(){for(var i=arrayKeys.length-1;i>=0;i--)switch(arrayKeys[i]){case'seconds':timestamp+=parseInt(options[arrayKeys[i]],10);break;case'minutes':timestamp+=parseInt(options[arrayKeys[i]],10)*60;break;case'hours':timestamp+=parseInt(options[arrayKeys[i]],10)*3600;break;case'days':timestamp+=parseInt(options[arrayKeys[i]],10)*86400;break;case'weeks':timestamp+=parseInt(options[arrayKeys[i]],10)*604800;break;case'months':timestamp+=parseInt(options[arrayKeys[i]],10)*2592e3;break;case'years':timestamp+=parseInt(options[arrayKeys[i]],10)*31536e3;break}}
    function updateMainCounter(counter,time){var html='';if(forceTwoDigits===true&&time.toString().length==1){html+='0';html+=''+time.toString()+''}else for(var i=0;i'+time.toString().charAt(i)+'';$('.block_enrolmenttimer .active .timer-wrapper .timerNum[data-id="'+counter+'"]').html(html);$('.block_enrolmenttimer .active .text-desc .'+counter).html(time)}
    function updateLiveCounter(){timestamp--;var time=timestamp,tokens=['years','months','weeks','days','hours','minutes','seconds'],units=['31536000','2592000','604800','86400','3600','60','1'];for(var i=0;i=units[i]){var count=Math.floor(time/units[i]);updateMainCounter(tokens[i],count);time=time-(count*units[i])}else updateMainCounter(tokens[i],0)};if($('.block_enrolmenttimer .active').length>0){getDisplayedOptions();populateWithData();makeTimestamp();window.setInterval(function(){updateLiveCounter()},1e3)};if($('.block_enrolmenttimer .timer-wrapper[data-id=force2]').length>0)forceTwoDigits=true})}
    at B (require.min.js:12)
    at J (require.min.js:27)
    at Object.g [as require] (require.min.js:27)
    at requirejs (require.min.js:27)
    at footer:1

    Should I create a ticket on the repo for this? Is this something that has been noticed by others?

    I am using the latest version 3.3.0 2017051200. Issue in both firefox and chrome.
  • Picture of Learning Works
    Tue, 6 Jun 2017, 7:11 AM
    Hi James,

    What version of Moodle did you install the plugin on? We will look into this error and try to find a solution.

  • Picture of Learning Works
    Fri, 9 Jun 2017, 10:00 AM
    Hi James,

    The Javascript issue you were encountering should be fixed in the latest version smile

  • Picture of Hiro I
    Mon, 18 Sep 2017, 11:37 PM
    I have some questions about how flexible Enrolment Timer be set in different courses.

    While setting up Alert Email Notifications in Enrolment Timer settings, is it possible to set a different number of days (‘Days to alert on’) in different courses? The setting seems only one specific number of a day for all the courses.

    Also when we enable ‘Enable Time Warning Email’ setting, Is there way to control which courses will receive this particular email? What if we want only send a message to a few courses but not all?

  • Ricardo Caiado
    Sat, 17 Mar 2018, 10:33 PM

    Any update to Moodle 3.4?

  • Picture of Deependra Singh
    Thu, 14 Jun 2018, 2:20 PM
    Any update for Moodle 3.5 or with privacy api intregated?

  • Picture of Mathew May
    Mon, 18 Jun 2018, 7:09 AM
    Hi Deependra,

    We are still investigating how to best implement the privacy API within the block, until that time there will not be an release for 3.5.
    We appreciate your understanding.

  • Hi Aaron,

    Your plugin is great. However, is there a way to make it work with the course end date?
  • Picture of Mathew May
    Tue, 17 Jul 2018, 4:36 AM
    Hi Antonio,

    There are no current plans to include that functionality yet. We are however currently implementing the privacy api so it is 3.5+ compliant. We are open to pull requests for functionality if you wish to see it in the block.

1 2 3 4

Commenting temporarily disabled