1. Home
  2. Knowledge Base
  3. Uncanny LearnDash Toolkit Pro
  4. Simple Course Timer


Please note that time is only tracked from the point at which this module is activated, and only for as long as it stays active. Historical records are not available; time tracking is only possible when this module is turned on.

Also important to note is that some caching plugins can cause the timer to loop and generate high load on the site. If you experience high resource usage, please test with caching disabled.

The Simple Course Timer module is part of the Pro Suite of modules for the Uncanny LearnDash Toolkit. Turning it on tracks all time learners spend inside a LearnDash course, including on course, lesson, topic and quiz pages. With tracking enabled, both total time in course and completion time can be exported in LearnDash reports or displayed onscreen.

Time starts being tracked as soon as the module is enabled. The time columns are also added to the LearnDash course report automatically.

Time is tracked across all devices and courses, but time cannot be tracked when a user is directed away from the WordPress site on iOS and Android, such as when opening a PDF file or link in a new window. Our plugin can only track time when users are inside WordPress and that window is active in the browser, so if users are directed away from WordPress, time tracking will stop while WordPress is in a background tab. If accurate time tracking is required for external resources on mobile devices, consider embedding then on your site instead. There’s nothing we can do to change this behaviour; mobile operating systems disable javascript when a window isn’t in focus to preserve battery live.

Live Demo

See this module in action on our LearnDash demo site!

Idle Timeout

Once time tracking is enabled, you may want to make sure you’re tracking a learner’s actual time spent learning, not just leaving his or her browser open on a course page. That’s why the plugin can stop time from being tracked if a user spends too long on a page. When that happens, a pop-up message is displayed asking the user if they’re still on the page. Confirming activity resumes the timer, while navigating elsewhere or showing the message stops the timer.

timer settings

To change idle timeout behaviours, go into the Settings window for the module. From this page (pictured above), you can change the default idle time (this can be overridden at the lesson, topic and quiz level), the timeout message (what the user will see when the maximum idle time has been reached), the button label to confirm activity, the button label to exit the course, and where to redirect the user to if the latter button is clicked.

If no time is set in either the module settings or individual LearnDash pages, the default value of 900 seconds (15 minutes) will apply.

Minimum Course Time Before Quiz

In version 1.3, we added the ability to block users from attempting a quiz if they have not yet logged enough time in the course.  A field is added to quiz pages to enable this option:



If a user attempts to access the quiz before spending the specified number of minutes in the course, they will see a message:

You must spend 60 minutes in the course before you can attempt the quiz. You have currently spent 18 minutes. Please go back and review course material before attempting the quiz.


The following shortcodes are available when the Simple Course Timer module is created:


Displays total time spent inside a LearnDash course, including time spent after completing the course. This shortcode must be used inside a LearnDash course, otherwise the system won’t know what course to output information for (we recommend using it on a course page or LearnDash sidebar).

[uo_time user-id="" course-id=""]

Displays the same total time as above but allows you to enter a specific user ID and/or course ID. The latter allows the shortcode to be used outside of a LearnDash course.


Shows the time it took the learner to complete the LearnDash course. There is no value for this shortcode until the user completes the course, and after completion, this value does not increase.

[uo_time_course_completed user-id="" course-id=""]

Works as above but allows the inclusion of a user ID and course ID.

When the Simple Course Timer module is on, the LearnDash Course Report includes additional columns for total time and completion time. Once again, the completion time value is only populated when the user completes the course.

Was this article helpful?