Uncanny CEUs: Archive quiz results

The Uncanny Continuing Education Credits plugin for LearnDash is perhaps the #1 tool for archiving LearnDash course records. Out of the box, LearnDash on its own can only track the current attempt for a course. If users retake a course after a progress reset, all records of earlier course activity, including certificates, is wiped out. Uncanny Continuing Education Credits (a.k.a. Uncanny CEUs) was born out of a need to keep a record of all course activity.

Introducing quiz record archives

We have archived LearnDash course records for years. The completion records could be included in transcripts to give a complete record of a user’s learning activity as well as in admin and front end reports. For compliance and other periodic training, these permanent course records were invaluable, but they were just that–course records.

With the release of Uncanny Continuing Education Credits 4.0, we’re adding support for quiz record archiving to the mix. Need to know how some students performed in final course quizzes 3 years ago? No problem. Concerned that our Quiz Question Analysis Report in Tin Canny has invalid results because it doesn’t captured archived quiz records? Not any more!

Generate historical records

Now that Uncanny CEUs can archive more than just quiz data, we had to rebuild some of the Settings page to support different data types. Here’s how things look now if you want to generated credit records, course records and quiz records:

Archive LearnDash course and quiz results

Generating results really is as easy as clicking a button. It can take a few minutes with lots of results, but in the end you will have a complete set of data that will survive course and quiz progress resets.

Of course, these steps are generally only needed when you first install the plugin. Once activated, Uncanny CEUs will automatically add all new course and quiz records to our special archive tables.

When historical results are stored, our plugin is recording a permanent record of quiz dates, scores, and answers to multiple choice questions.

Using historical records

Tracking the data is one thing, but how do you go about using it?

Archived quiz results are primarily for admin use, so once archived records have been stored, we add a new section to edit user pages in /wp-admin/ that shows these records. It shows up immediately beneath active quiz results in the Course Info section and looks like this:

Archive LearnDash quiz results

We also include quiz archive data in the Quiz Question Analysis Report.

There are a few important things to keep in mind:

  • While quiz records are stored in the archive as they’re recorded, each quiz attempt will only show up ONCE on the edit user page and reports. In other words, after completion, the attempt would show up with regular quiz results only. It is only after a course progress reset wiped out quiz records that the attempt would be moved and show up in the “Archived quiz results” section instead.
  • It is not possible to delete archived quiz results.
  • Quiz certificates are not retained, only quiz scores, dates, and multiple choice answers.

Other CEU additions

Don’t worry, there are other new features in the 4.0 release as well!

For anyone that works with multi-course certificates, access was always limited to email delivery and retrieving files from the web server. Now, for developers that need more flexibility and want to retrieve this certificate type with something user-facing, links to certificates are stored in user meta. Here’s how you can use them:

  • ceu_multicert_$certificate_id_course_$course_id = certificate path (certificate id and course id are actual certificate and course ids)
  • ceu_multicert_$certificate_id_course_$course_id_earned = current timestamp (certificate id and course id are actual certificate and course ids)
  • ceu_multicert_$certificate_id_earned = current timestamp (certificate id is actual certificate id)
  • uo-ceu-multicert-$current_time = possible array of all certificates generated
  • uo-ceu-multicert-linked-courses-$current_time = all courses linked to certificate
  • uo-ceu-multicert-certificates-$current_time = all certificates matching courses

$current_time and timestamps will be the same for all keys added above.

If you’ve ever wanted to show credit values associated in a course on non-course post types, you could pass in a course ID, but that made it very difficult to use in sitewide elements like a sidebar. In the 4.0 release we have added detection to the [uo_ceu_available] shortcode, so now if it’s used in a lesson or topic post type, it can look up the parent course and show the credit value for that course.

That covers the highlights of the Uncanny Continuing Education Credits 4.0 release. Make sure to check the changelog for a complete set of updates.