Reset Progress Button

Overview

Let learners reset their own progress in a course with a single button — useful for retaking a course, clearing a failed attempt, or starting over. You can add the button anywhere with a shortcode or block, or trigger a reset programmatically with a developer function.

The Reset Progress Button clears a user’s progress in a specified LearnDash course. You can place it on any post type — including the course itself — using either a shortcode or the Reset Button block.

The button is context-aware: it only shows to users who have recorded progress in the course. Learners who haven’t started the course won’t see it.

If your courses have shared quizzes, clicking the Reset Button will reset the quiz attempts in all courses where the user has completed the quiz.

For example, a quiz is assigned to “Course 1” and “Course 2”. A course user completes both courses and passed the quiz in each course. The user then clicks the Reset Button for “Course 2”, resulting in all progress resetting for “Course 2”. When the user views “Course 1”, the course will still have a status of completed, however the shared quiz progress will show as reset.

For shared essay quizzes that have been graded and points awarded, only the points will reset, the graded essay remains submitted.

If a shared quiz awards the user a certificate, clicking the reset button will also clear awarded certificates in all courses that share the same quiz.

To ensure users receive awarded certificates after passing a quiz, you can use the Toolkit Pro module Email Quiz Certificates

Configure It

You can customize the button in the Toolkit module settings:

  • Button text — Set the label that appears on the button.
  • Append course name — Optionally add the course name to the button text. We recommend enabling this when you display multiple reset buttons on a single page, so learners can tell them apart.

Usage

Add the button with the shortcode or the Reset Button block.

[uo_reset_course_progress course_id="x"]

Replace x with the course ID. You can find the ID in the admin URL when editing the course — it’s the post=x value.

Decisions to make when placing the button:

  • On the course page — The course_id attribute is optional; the button targets the current course automatically.
  • On any other page — Set course_id so the button knows which course to reset.
  • Show only after completion — Wrap the shortcode in LearnDash’s course_complete shortcode so the button appears only to learners who have finished the course.

Resetting Tin Canny data

If you also use Tin Canny LearnDash Reporting, you can clear its tracking data at the same time:

[uo_reset_course_progress reset_tincanny="yes"]

Setting reset_tincanny="yes" deletes the user’s Tin Canny tracking data for that course.

Note: In the current version, both the reporting (results) and resume (bookmark) tracking records for the course are cleared. Earlier versions did not delete resume/bookmark data due to technical constraints. 

Shortcode Reference

AttributeValuesDescription
course_idCourse ID (e.g. 100)The course to reset. Optional when the button is placed on the course page itself.
reset_tincannyyes / no (default no)Also deletes the user’s Tin Canny tracking records for the course.
redirectURLOptional. Sends the learner to this URL after the reset is processed.

Developer Function

For custom implementations, reset a user’s progress directly:

$user_id   = 10;
$course_id = 100;
\uncanny_pro_toolkit\LearnDashReset::reset_course_progress( $user_id, $course_id );

The method signature is reset_course_progress( $user_id, $course_id, $reset_tincanny_data = 'no', $redirect_url = null ). Pass 'yes' as the third argument to also clear Tin Canny tracking data.

15 thoughts on “Reset Progress Button”

  1. I think it would be great to NOT have to enter in the course ID but have the system look to see what course they are in and THAT will be the course they reset. In the case of someone in mutliple ocurses, a drop down could display showing the different courses that they can reset for thmselvs.

    1. Hi Aaron, the reset button will behave that way if placed on a course page; it will automatically apply to the course page it’s placed on.
      We don’t currently have any plans to extend the functionality, but I’ve noted your feature request in our product backlog. Thanks!

      1. Ahhhh I see, its based on the course they are in. So I would put this in a widget? I have been trying to make the student profile page to be more like a dashboard / resource center so I had used the button on that page.

        Thanks!

        1. Yes, you could put it in a widget that appears only on course pages, or you could also place it directly in the content that appears on course pages.

  2. Hey there UncannyOwl Team!

    Question: Can you use this RESET PROGRESS functionality on a per Lesson or per Topic? To RESET just that Lesson or just that Topic? Thank you!

    Chris

    1. Hi Chris,

      I’m afraid that’s not currently supported. I’m not sure that you’ll see anything related to this either (we haven’t had any other requests), but you might see some ways to make this possible in an Automator 2.x release.

  3. I’m trying to simply reset an admin course progression and I’m getti’ nothin. I get that you guys are an advanced team but I want you to know that this is not working. I’m not even getting a reset button.

    1. Hi Jack, I’m not 100% sure from your comment, but it sounds like you’re trying to reset the course progress for another admin user with the button. The button is designed to reset the progress of only the current user, so if you want to reset the progress of another user you’ll need to switch to that user first. Also, the button won’t show up if the user has no recorded progress in the course. If you’re an admin, you can also reset a user’s progress from their profile page in the wp-admin backend. If you’re still having issues with the module, please shoot us an email at support@uncannyowl for a faster response.

  4. This sounds like what I need. But I’d like to retain the user’s past activities. So, say they completed 2 of 4 lessons in the course, I’d still like to keep that information if they reset the course progress. Is that possible? Or does this button delete the course progress they’ve had in the past?

    Thanks!

    1. Hi Dean,

      There is no way to retain previous progress (natively) if progress is reset. There are some options, like a Zapier or CRM integration could allow you to pass records to another platform on completion of lessons that would then survive a reset, or our Continuing Education creates an archive of course (not lesson) completions.

    1. No, progress reset shouldn’t affect enrollment. If you want a button that can do multiple things, including reset and removing enrollment, Uncanny Automator would be the better choice here.

  5. What happens to the certificates the user has earned when the progress is reset? Presumably they disappear as well? Would enabling the “email certificates” functionality to send certificates to an inbox that acts as an archive of users certificates be a feasible workaround?
    Thanks

    1. Yes, since certificates are generated dynamically, resetting course records wipes out certificates as well. Sending certificates via email using Toolkit Pro is one option, and then in our CEUs plugin we can archive course results so the record (though not the certificate) is still available and survives the reset.

Leave a Reply

Your email address will not be published. Required fields are marked *

Uncanny Toolkit Pro for LearnDash

30 powerful modules for LearnDash professionals. Our most popular plugin!

Related Articles

Scroll to Top