Uncanny CEUs: LearnDash Credit Report overhaul

WordPress sites offering continuing education credit programs with LearnDash tend to collect a lot of data about course completions. Our Uncanny Continuing Education Credits plugin makes it easy to track and manage CEUs and other credits, but over time, all of the user activity can generate a lot of data, sometimes tens of thousands, or even hundreds of thousands, of records. Loading this volume of data in a single report can sometimes be taxing on site resources, so in today’s Uncanny Continuing Education Credits 4.1 release, we’re excited to offer new reporting solutions targeted at performance.

Faster LearnDash credit reports

In the Uncanny CEUs 4.1 release, you’ll see a new Credit Report Settings section under Uncanny CEUs > Settings in /wp-admin/:

LearnDash Credit Report Settings

Loading avatars for a large volume of users is slow, so you can disable that for better performance.

Next we have 3 new options for “Report Mode”:

  • Legacy: The system and queries that existed before 4.1. Should only be used for compatibility, like if you customized report output and credit capture outside of our plugin.
  • Performance: The new default option, captures some data during user updates so some data is effectively “prefetched” and reduces user queries.
  • Ludicrous: Generates cached credit data hourly based on a cron, then loads the data from the cached record in the report. Can be refreshed on demand if data is stale.

There are also new settings for Default Date Range and Default Page Length. Once again, loading less data when the report is first opened (with a smaller date range and a shorter default page length) can improve performance and reduce memory usage.

Other LearnDash credit updates

While the changes to the credit report are the biggest update in 4.1, there are also several important changes for Uncanny CEUs users:

  1. There’s a new Reset button on the credit report page to reset filters. this makes it easier to generate new reports.
  2. Dates and times are now aligned with LearnDash times.
  3. There is better support in the reports when LearnDash is not active (yes, Uncanny Continuing Education Credits does not require LearnDash to be active, and can be used to capture credit data from other sources only, typically with Uncanny Automator acting as an intermediary).
  4. There is improved PHP 8.2 compatibility to align with the LearnDash 4.10 release.
  5. There are new filters available for awarding CEU certificates to allow email header overrides: uo_group_leader_mail_headers, uo_admin_mail_headers and uo_user_mail_headers.

For full details about the changes, make sure to review the Uncanny CEUs changelog.

Uncanny Groups 5.4: Front End Group Hierarchy Management

We’re excited to announce the release of Uncanny Groups 5.4, which includes several significant new features for users of the #1 plugin for the sale, management and reporting of LearnDash groups. This release includes 5 key new additions to make group management even easier.

Front End Group Hierarchy Management

When group hierarchies are enabled in LearnDash settings, the Edit Group and Create Group tools in Uncanny Groups now support the ability to choose a parent for the selected group. To make this option available, just add the parent_selector=”show” attribute to the shortcode, like this: [uo_groups_create_group parent_selector=”show”]. Once that’s done, a new drop-down list for the parent group selection will be added to the form:

Choose a LearnDash Parent Group

For Group Leaders, of course, any group parent options must be groups that exist and the user must be a leader of the group. Group Leaders can only see groups that they’re associated with.

This new functionality allows scenarios where Group Leaders have more control over their users, access and reporting. With the wizard to create a group enabled, Group Leaders could choose to set up new child groups for more granular access over courses and reporting rather than using a single large, top-level group.

Group refund changes

In previous versions of Uncanny Groups, the refund behaviour assumed that groups would always be fully refunded, so the group itself would no longer be needed and users would lose access. Based on customer feedback, we realized that this was not sufficient; more support was needed for partial refund scenarios as well as more control over what happened when an order was fully refunded. That led us to add the following changes to the Uncanny Groups > Settings page:

Refund Uncanny Groups

Now, when an order is partially refunded and the first option is checked, we will adjust the seat count for the associated group accordingly. And if the order is fully refunded, we can just move the group itself to the trash.

Reset quiz retakes

Our Manage Learner Progress tool is a really popular way for Group Leaders and admins to update and track user progress in the front end. While the ability to mark quizzes as complete or incomplete has existed for a long time, we didn’t offer a way to also reset attempts and records for a quiz. Where quiz retakes are limited, offering the option to reset attempts for a quiz became more important. Now, when a quiz is marked incomplete by a Group Leader or admin, they will be presented with this option:

Reset LearnDash Quiz Attempts

Users can click “yes” to remove all records related to the quiz for a user, effectively allowing them to start over, or they can choose “no” to keep the records and simply mark the quiz as incomplete.

Other updates

The Uncanny Groups 5.4 release adds the ability for Group Leaders to also email users in child groups when emails are sent from the parent group. This functionality relies on our Email Users tool, and when a group has child groups, the following checkbox will be added to the modal window to email users:

Send emails to child group members

Finally, we have relaxed requirements for the upgrade and downgrade functionality on group edit pages in /wp-admin/. (Upgrades and downgrades refer to adding support for seats and enrollment keys to LearnDash groups.) All groups, regardless of how they were created, can now be upgraded or downgraded.

That covers the highlights of the new Uncanny Groups 5.4 release, but for full details of the changes, please see the changelog.

Uncanny Groups: New Edit Group Wizard

The Uncanny Groups for LearnDash 5.3 release is now available! This update to our popular group management plugin for LearnDash adds 1 key new feature: a way to edit LearnDash groups in the front end. It’s an optional new tool that will make group edits a lot easier for many sites (and reduce the need for admin support).

Edit LearnDash Groups in the Front End

Uncanny Groups has supported front end LearnDash group creation for several years. Group editing was a much more difficult piece to tackle, as we had to consider implications for groups created via ecommerce, how to limit course access, what fields should and shouldn’t be available for editing, etc. In the 5.3 release, we’re adding a new shortcode and a new Gutenberg block to make group editing possible. Here’s the shortcode and the attributes it supports:

[uo_groups_edit_group group_name="show" total_seats="show" group_courses="show" category="" course_category=""]

There’s a lot to explain here, so let’s tackle each attribute.

The first attribute, group_name, determines whether or not the user editing the group (i.e. the Group Leader or admin) can modify the group name from the group edit page. If the group supports seats, the total_seats attributes determines whether or not the user editing the group can change the number of seats for the group (keep in mind, of course, that the number cannot be less than the number of students in the group.

The next attribute, group_courses, allows Group Leaders or admins to change (so add or remove) courses from the group. But which courses are available to the group? That’s where the category and course_category attributes come in; when included in the shortcode or block, only courses matching the category or course_category settings will be available. (To include multiple categories, separate the category slugs by comma.)

Here’s what a group edit page that supports changing name, seats and courses looks like:

Edit LearnDash Groups

Link LearnDash Group Editing to Group Management

You’re probably now wondering how you choose a group to edit and how your Group Leaders will find this tool.

There are 2 steps to enabling the optional front end group editing tool on your website:

  1. Create a new page with the [uo_groups_edit_group] shortcode.
  2. Update your Group Management page shortcode to link to the group edit page.

To link the Group Management page to the edit group page, there’s a new attribute for [uo_groups], so it must be updated to look like this:

[uo_groups edit_url="/front-end-learndash-group-edit/"]

The edit_url attribute defines where the edit group page set up in the section above is located. When it’s defined, the Group Management page will display an Edit group button next to the group name. It will look like this:

Edit Group button

The Edit Group feature is a really powerful new addition for Uncanny Groups, and we hope you find it useful.

Other Uncanny Groups additions

The new Edit LearnDash Group wizard is certainly the highlight of Uncanny Groups 5.3, but there are a number of new important enhancements.

There’s better support for formatting when RTL languages are used, the “Add and invite users” is set as the default option when users are imported via CSV file (for consistency with other methods to add users).

We hope you find the additions useful!

Toolkit Pro 4.1: Drip topics & Autocomplete with Formidable Forms

We’re excited to announce another big release of our most popular premium plugin, Uncanny Toolkit Pro for LearnDash. The 4.1 update adds 3 completely new modules for LearnDash users: Drip Topics by LearnDash Group, Autocomplete Lessons & Topics on Fluent Forms Submission and Autocomplete Lessons & Topics on Formidable Forms Submission. There are also a few enhancements for existing modules that we’re excited to share.

Drip Topics by LearnDash Group

Current Toolkit Pro users will already be familiar with our popular drip module for lessons, “Drip Lessons by LearnDash Group“. As you might expect, this new module is effectively the same thing as what we offer for lessons–except for topics. The settings will all be familiar, and there’s even support for the LearnDash Notifications plugin.

LearnDash drip topic by group

Autocomplete Lessons & Topics on Form Submission

The 2 new modules for Formidable Forms and Fluent Forms mirror what we have for Gravity Forms and WPForms. With the new tools, we can detect when a Formidable Form or Fluent Form appears on a lesson or topic page, hide the Mark Complete button, and require the users to submit a form entry. In Formidable Forms (and other other form integrations), the user will be advanced to the next step in the course. Unfortunately, Fluent Forms cannot support automatic advancement, only completion of the lesson or topic, so users must manually advance if they are using this module with Fluent Forms (this is a Fluent Forms limitation).

Settings are available for the new modules to control how to handle previous form entries and availability of the module (Formidable at the form level, Fluent at the global level, as Fluent can’t support custom form-level settings):

Fluent Forms autocomplete LearnDash lessons & topics

The modules are particularly useful for things like course feedback forms, and if added to the last lesson or topic of a course, they can be used as a final step to trigger course completion.

Restrict Page Access based on course completion

Our popular Restrict Page Access tool gains a new option for page permissions: Course Completion. Here’s what the updated metabox looks like in Gutenberg:

Restrict page access based on LearnDash course completionThis allows you to control any page or post type and base it on the user having a particular role, enrollment in a course, completion of a course, or enrollment in a group. You can also redirect users to a page explaining the restriction or just show a message to users that don’t have access.

Enhanced CSV Reports: Start date

Our Enhanced LearnDash CSV Reports module adds support for 1 new column type: Start date. Now it’s easy to see at a glance when users started a course (or gained access via a group).

Those are the highlights of the new Toolkit Pro release. We hope you find them useful!

Customize Your Uncanny Groups + LearnDash Course Reports

Add your own columns and data to Uncanny Groups and LearnDash course reports and empower your Group Leaders with the tools they need.


As an e-learning educator or administrator, you know how important it is to have accurate and detailed course reports. And while LearnDash has some built-in reporting tools, oftentimes, you need additional information. Custom data fields such as a user’s job title, age, department/organization or even last login date can be invaluable for administrators, instructors and LearnDash Group Leaders.

So, if you’ve been looking for a way to add more columns and custom data to your Uncanny Groups and LearnDash course reports, then you’ve found the right page. In this article, we’ll show you a few simple ways to customize your Uncanny Groups and LearnDash course reports. We’ll also show you how to make those reports visible right from your WordPress dashboard so that Group Leaders can access them.

Trust us, this will be the easiest course you take all day.

Custom Columns in CSV Files for Administrators

For WordPress and LearnDash administrators, one of the simplest reporting tools available are LearnDash’s native CSV reports. These reports provide administrators with the ability to export basic information on users’ course and quiz data to CSV files where they can perform in-depth analysis and keep track of their KPIs. As useful as these native CSV reports are, however, they don’t always contain the information that you’re looking for.

Enter Uncanny Toolkit Pro.

To customize your LearnDash user reports, follow these simple steps.

  1. Download Uncanny Toolkit Pro

As the leading add-on for LearnDash users, Uncanny Toolkit expands and improves upon the features and functionalities of your LMS website. If you’ve ever found yourself wishing that LearnDash could do “X” (such as report customization) or show you “Y” (such as unique metadata), Uncanny Toolkit is the add-on you need. With 30+ modules and first-in-class support, you’ll have total control over your ability to customize your LearnDash site and your users’ e-learning experience.


To gain access to additional modules, such as the Enhanced LearnDash CSV Reports module that we’ll be using to improve LearnDash Reports, you’ll need the Pro version of Uncanny Toolkit. Click here to download Uncanny Toolkit Pro.

  1. Select the Enhanced LearnDash CSV Reports Module

After downloading Uncanny Toolkit Pro, from your WordPress dashboard, navigate to Uncanny Toolkit > Modules. Scroll down to Enhanced LearnDash CSV Reports and toggle the module “On”. The toggle switch will appear green when enabled.


  1. Configure the Module Settings

To add columns to LearnDash user reports, click on Settings in the Enhanced LearnDash CSV Reports module. A pop-up window will appear where you can select from predefined columns such as Username, Language and Website.


If you scroll down, you’ll also see that Toolkit Pro lets you add user and course metadata as columns when you enter the meta key. These fields are particularly useful when you want to include custom metadata. For example, we have created the custom metadata department, job title, age and last login to better understand our user engagement and performance.


Having entered the meta key into the Usermeta Key fields, we were able to add those keys as columns in our exported CSV reports.


If you don’t know how to create and retrieve custom metadata on WordPress, jump down to the section Create Custom Metadata for WordPress.

We’ve seen how, with the Toolkit Pro add-on for LearnDash, you can drastically improve your LearnDash course reports. But CSV files don’t suit everyone’s workflows. Not to mention, Group Leaders and other instructors without administrator access to the back-end of your WordPress website won’t be able to retrieve their own LearnDash course reports.

If you’re using the Uncanny Groups for LearnDash add-on, however, you can add columns to reports on the front-end of your WordPress website for Group Leaders and instructors to access. Furthermore, you’ll be able to export the reports to Excel if that format suits your workflows better than CSV files.

Custom Columns for Uncanny Groups Course Reports

If you’ve been using the Uncanny Groups for LearnDash add-on then you already know about all of the amazing features such as front-end management and reporting tools for Group Leaders. However, sometimes, your Group Leaders will need more information than what the default reports contain.

Fortunately, there’s an easy way to add custom columns and data to your Uncanny Groups course reports. Follow these steps to help your Group Leaders drill down into their course and user data. We’ll also show you how easy it is to export course reports to Excel so that Group Leaders can track their KPIs and customize their analytics.

  1. Add Column Titles

First, you’ll need to add the titles of your custom columns to your Uncanny Groups course reports. To do this, you’ll need to add some code to the functions.php file of your child theme. The code snippet to add column titles to Uncanny Groups course reports is:

In the code snippet above, $columns[‘custom_key’] = ‘My custom column’ is where you can input the column title that you want. For example, we would like to add the column title Last Login so our code snippet would look like this:

Of course, you’d rarely only want to add only one column to your Uncanny Groups course reports. If you’d like to add multiple columns, simply include additional lines as follows:

  1. Add Column Values

Now that you’ve added the column titles to your Uncanny Groups course reports, it’s time to add the values. To input the values of your custom columns into your Uncanny Groups course reports, add the following code snippet to the functions.php file of your child theme:

In the code snippet above, $user_data[‘custom_value’] = get_user_meta( $user_id, ‘custom_value’, true ); is the line that will retrieve the user’s metadata that you want included in your Uncanny Groups report. In our example, with the meta values for all of our corresponding column titles, the code snippet would look like this:

Note: The snippet $user_data[‘learndash-last-login’] = get_user_meta( $user_id, ‘learndash-last-login’, true ); will return a timestamp value. If you want your course report to return the learndash-last-login value as the date format from your WordPress settings, you can use this code snippet:

  1. Export Uncanny Groups Reports to Excel

Navigate to the page(s) where you have your Uncanny Groups course reports. Note, you can include Uncanny Groups course reports on any page with the shortcode: [uo_groups_course_report]. As you can see in the image below, our custom columns along with the corresponding metadata have been added to our course report.


To export the report to Excel, simply click Excel export in the upper right-hand corner.


That’s all it takes!

Create Custom Metadata for Your LearnDash Reports

By default, WordPress stores a lot of data about your users. But it’s not always the data that you’re looking for. Throughout this article, we’ve been using custom WordPress metadata that suit our specific needs and workflows. Perhaps you’re already doing this on your site, like capturing “job title” or “department” in registration forms from your favorite form plugin, or a plugin like Advanced Custom Fields that adds extra data to users and posts. But, for greater control and management over your user and content records, you might need some additional help.

One popular solution for creating and manipulating custom WordPress metadata is our Uncanny Automator plugin. With Automator, you can craft recipes to create and alter unique metadata that you wouldn’t otherwise be able to. For example, we could help our Group Leaders by putting some key analytics right at their fingertips.


The recipe pictured above is the same one that we used to create some of the unique user metadata that you saw throughout this article. Whenever a user registers with our WPForms registration form, Automator creates the user meta organization and job_title along with the three unique key/value pairs quiz_100, quiz_85 and quiz_60 to track the number of quizzes a user passes with a given percentage score. We can then use subsequent recipes to alter that metadata, saving our Group Leaders hours of administrative work.


With these recipes and the ability to add custom columns to Uncanny Groups course reports, Group Leaders can easily keep track of their learners’ progress.

If you want to learn how to create your own WordPress metadata with Automator, then download the plugin and read a brief tutorial on mastering WordPress metadata.

Toolkit Pro 4.0: Generate LearnDash Certificates in Bulk

It’s here! The Uncanny Owl team is thrilled to announce that version 4.0 of the Uncanny Toolkit Pro plugin for LearnDash is now available. The latest update to the most popular third-party premium add-on for LearnDash adds 1 new module and a huge number of new features and improvements. Let’s jump right in to what’s new.

Generate LearnDash Certificates in Bulk

It’s a question LearnDash users have been asking for years: How can my Group Leaders and I download certificates for all of our students? Until today, you couldn’t. You had to look up records for one user at a time, find the right course or quiz, then generate a new certificate. It was time-consuming to the point of being completely impractical for large groups of users and courses.

With the new Download Certificates in Bulk module, grabbing a large batch of certificates is as easy as adding a shortcode to a page. When viewed by an admin or Group Leader user (the Group Leader must, of course, be the leader of one or more groups), it’s possible to download a zip file with Group, Course or Quiz certificates. To get started, add [uo_download_certificates] to a page and choose the type of certificate to download:

Download LearnDash Certificates

Depending on the type of certificate, you might be prompted to choose a group, course and/or quiz. As long as whatever you select has quizzes associated it, you will see an option to generate certificates. Here’s an example for bulk course certificate generation:

Generate LearnDash Course Certificates

In the above example, the module will look up all students in the Uncanny Owl group, see who has completed the “Intro to Bulk Certificates” course, and then create a zip file for all students that have earned a certificate. Inside the zip file will be a set of certificate files in PDF format.

One important thing to note is that all certificates in LearnDash are generated dynamically, and we rely on LearnDash for this generation. Because some criteria might generate hundreds, or even thousands, of certificates, we push processing to the background and send an email when the generation is complete along with a link to download the certificates. This process can be slow, perhaps upwards of 10 minutes if there are a lot of certificates to generate.

There are a number of settings available in this new module, including the free space required in the environment to allow certificate generation, email notification settings and an option to delete all temporary certificate zip files. (Certificate zip files are automatically purged after 12 hours to ensure that sites don’t run out of space. )

LearnDash Certificate Download Settings

Other Toolkit Pro Enhancements

Uncanny Toolkit Pro for LearnDash 4.0 also includes several other noteworthy improvements, including the following:

  • The Transcript module adds support for category attributes (e.g. [uo_transcript ld_category=”all” category=”all”]), so you can more easily control exactly what’s output in a transcript. Perhaps sample or hidden courses should be excluded from the report.
  • Notification emails for the Group Expiration module include several new filters for overriding the header, subject and message programmatically, like:
    $headers = apply_filters( ‘uo_ld_expire_group_email_headers’, $headers );
    $message = apply_filters( ‘uo_ld_expire_group_email_message’, $message, $user, $group_id );
    $sub = apply_filters( ‘uo_ld_expire_group_email_subject’, $email_title, $user, $group_id );
  • The Import Users module ignores blank rows, so users with empty rows they didn’t realize they included in the CSV file will no longer see errors.
  • The PDF export for the LearnDash Transcript module now supports RTL languages.
  • The Reset Progress button module now supports deleting time records from the Simple Course Timer module by using this filter: apply_filters( ‘uo_course_timer_data_reset_enabled’, false, $course_id, $user_id )
  • Pages created by the Group Registration module are now hidden by default from search engines.
  • The Group Registration module adds improved WPML support.

We hope you find the update useful! A full list of changes can be found in the Toolkit Pro changelog.

Better Notifications for LearnDash

With the LearnDash Notifications add-on and Uncanny Automator, students and staff can stay in touch, communicate more and learn together.

In self-directed elearning courses, it can be difficult for instructors to stay engaged with their students. While reports help instructors gather summary-level details on their students’ progress, they don’t keep educators in the loop as the learning unfolds. The LearnDash Notifications Add-On, however, addresses some of the challenges associated with real-time feedback. Even so, the LearnDash Notifications Add-On can’t quite always accommodate the needs of both students and instructors.

For example; how do students become aware of new course availability, new feedback from instructors, or new group discussions? To promote engagement and increased learning, elearning websites require a way to reach out to students beyond the website itself.

Whether you’re looking to enhance the LearnDash Notifications Add-On or replace it altogether, you’ve found the perfect solution.

LearnDash Notifications Add-On

In the LearnDash ecosystem, the easiest and most common way to send notifications to students and instructors (typically “Group Leaders” in LearnDash) is by email using the free LearnDash Notifications Add-On. It’s a powerful add-on that allows key LearnDash events, like course completion or assignment approval, to trigger email notifications to students, Groups Leaders and administrators. And with the new (at the time of publication) 1.6 release, it even adds conditions, so you can choose to send notifications only to users in certain groups, who have not completed a quiz, who are enrolled in a course, etc.

LearnDash Notifications is a great plugin that supports email notifications for a variety of scenarios, and since it’s free, it makes sense to use it on most LearnDash sites. It even has support for dozens of shortcodes so that you can include dynamic content (like the user’s name or course name) in the emails.

Better LearnDash Notifications - LearnDash Notification Add-On Triggers

With over 15 trigger types, a dozen conditions and dozens of shortcodes, there’s support for the most common email notification scenarios.

But what if you want to reach out to students via more than just email? And what if instead of a few dozen options, you had hundreds of triggers, multiple communication channels and thousands of conditions?

Enter Uncanny Automator

Uncanny Automator is our no-code automation platform for WordPress that we originally created as a way to personalize elearning for LearnDash. A little more than five years later, it has evolved into a robust system that connects LearnDash activity to more than 100 other plugins and apps. If the LearnDash Notifications Add-On gives you the ABCs of email notifications, then Uncanny Automator gives you the post-doctoral thesis in elearning linguistics. But while an actual PhD in linguistics night cost you an arm and a leg, there’s even a FREE version of Automator that connects some of the core LearnDash (and other plugins!) triggers to email and other channels!

More triggers

The LearnDash Notifications Add-On covers 15 basic scenarios. But what if you wanted more? Uncanny Automator gives you the ability to customize your LearnDash notifications, far beyond what the LearnDash Notifications Add-On can do. These are just some of the notifications you can send with Automator:

  • A user achieves a percentage, score or point value above or below a certain amount (“passing” or “failing” a quiz is great, but what if you want certain notifications based on score instead, like maybe notify the Instructor the first time only that someone gets a perfect score on a quiz?)
  • A new course, lesson or topic is created–or perhaps a new course is added to a group
  • A Group Leader is added or removed from a Group (keep other instructors in the loop about teaching staff changes)
  • A user completes a group’s courses
  • A user is removed from a group or course

But that’s just the start. No LearnDash site runs with the LearnDash plugin alone; it takes several, maybe even dozens, of plugins to run a LearnDash site effectively.

Want to know when new feedback forms are submitted for your course, but only on completion of the course? Here’s a recipe that notifies Group Leaders when the feedback form has been submitted and the user has completed the course:

Better LearnDash Notifications Automator WPForms/LearnDash Recipe

Maybe Group Leaders need to know when students have attended a live onboarding seminar that also enrolls the student in the next course? There’s a recipe for that too:

Better LearnDash Notifications Events Calendar/LearnDash recipe

Perhaps students receive a special certificate of congratulations after attending a live event that follows a course, so both LearnDash course completions and the Group Leader marking them attended triggers a special certificate:

Better LearnDash Notifications Events Calendar/LearnDash recipe graduation

More channels

Sending email notifications is great, but what if it’s not the best or only way to reach your students? By connecting LearnDash to Uncanny Automator, you can open up new channels of communication with your staff and students.

If your instructors work at a large institution, they’re likely flooded with emails everyday—and sending even more emails only results in more noise that gets ignored. But, if you had a dedicated support channel in Slack, you could get live updates any time users in a particular group fail a quiz or receive a low grade:

Better LearnDash Notifications LearnDash Slack recipe

Alternatively, certain scores on a quiz might open a ticket directly in your Help Desk system so important updates are easily tracked and followed up on. And one of our favorite examples for students who prefer more social messaging applications such as WhatsApp, SMS messages via Twilio or forums and groups in BuddyBoss, you can celebrate student achievements by sharing them with other students and staff. Perhaps, like in the example below, your students can celebrate their course completion or high grades in a specific group’s activity feed in BuddyBoss (and add multiple triggers to mark each accomplishment):

Better LearnDash Notifications LearnDash BuddyBoss recipe

With your students’ consent (perhaps via an opt-in form when they register), some site admins might even choose to share key accomplishments such as certification on social media in a private Facebook group.

More conditions

Adding filters to notifications is a great way to ensure that notifications only go to the right people at the right time. Conditions are a very recent addition to the LearnDash Notifications Add-On, and at the time of writing, supported conditions are:

  • User is enrolled to a group
  • User is enrolled to a course
  • User has completed a course
  • User has completed a lesson
  • User has completed a topic
  • User has submitted a quiz
  • User has completed a quiz
  • Essay has just been submitted
  • Essay question has just been put into graded status
  • User has uploaded an assignment
  • User’s assignment has been approved
  • User has not completed a quiz

It’s a great list, and on the LearnDash side of things, it absolutely covers the highlights. So what can Uncanny Automator bring to the table that LearnDash Notifications doesn’t have?

  • A lot of “not” in or “not” completed conditions. Maybe a notification simply doesn’t apply to a tester group. Instead of explicitly adding all of the other groups to the notification, you can just say “this notification applies to everyone except members of this group”.
  • Group hierarchy support. Maybe you support a hospital network with multiple departments and divisions, and maybe a certain notification applies only to members of one specific organization. If they have 50 groups in their group hierarchy, and perhaps those groups sometimes change, managing notifications for those groups would be a nightmare. With Automator, you can just set up a condition to have a notification run for everyone in a selected group and its children.

Of course, your LearnDash site is likely running more plugins than just LearnDash. What if you only want notifications to go out to users with a certain membership level in MemberPress, a matching WordPress role or a specific CRM tag via WP Fusion? No problem.

Taking things a bit to the extreme, here’s a WhatsApp notification that will only go out to users with an uncannyowl.com email address that have an “opt-in” tag in FluentCRM and are active Platinum members in MemberPress:

Better LearnDash Notifications WhatsApp Action with Automator conditions

You can keep notifications as simple or as advanced as you want in Uncanny Automator. You can even schedule and delay them.

More data

Suppose you want to send a confirmation notice to students when they complete a course—some type of congratulatory message. The LearnDash Notifications Add-On makes this really easy, and in the email you can include details like first name (or really any user data) as well as the course name. For many sites, this is enough.

Uncanny Automator, of course, currently has support for over 5,000 unique tokens. Some are based on user and system data, some based on the trigger, others even based on data in other actions in the same recipe. Here are just a handful of examples of other types of data you could include in the notification above if you used Automator instead of the LearnDash Notifications Add-On:

  • The number of courses the user has completed.
  •  Custom meta for the course, like continuing education credits earned, course duration or course author.
  • The course expiry date.

Or you could just do more with it, like include a coupon code for the user’s next course purchase or attach a printable PDF certificate along with the notification.

Get started for free

Many of the notification types outlined in this article are fully available in the free version of Uncanny Automator and run without restrictions. Triggers related to quizzes and course, lesson and topic completions are unrestricted in the free version of Automator, as are sending emails to students, Group Leaders and admins. By signing up for a free account, you can also try out notifications via Slack, WhatsApp, Twilio and more with complimentary credits.

With the right notification system in place, improved knowledge transfer and community building are just a few clicks away. Between the LearnDash Notifications Add-On and Uncanny Automator, LearnDash users have easy access to a class-leading notification system for elearning platforms.


How to Create & Sell LearnDash & WooCommerce Promo Codes

In this step-by-step guide, we’ll show you how to create and sell LearnDash and WooCommerce promo codes. Use them for course registrations, to sell event tickets or to unlock special features on your website.

So you want to be a master codebreaker, do you? Well, you’ve come to the right place. With Uncanny Codes, you can create and customize unique codes to sell, unlock or promote just about anything on your website.

Whether you want to use codes for event registration, product tie-ins, or to run limited promotions, Uncanny Codes has you covered. In this quick guide, we’ll show you how to create and sell promo codes and feature some of the best ways to use them.

Don’t worry, you won’t actually need to know anything about cryptanalysis in order to follow along.

What You’ll Need

If you want to “crack the code”, you’re going to need a supercomputer— or a cipher machine and a lot of time. But if you’re trying to make some unbreakable codes of your own, all you’ll need are these awesome WordPress plugins.

Uncanny Codes

Uncanny Codes is the best code management plugin for WordPress. Auto-generate dozens (or thousands) of codes with your own prefix, suffix, expiration date and usage rules. Native form-building integrations with Gravity Forms, WPForms and others makes Uncanny Codes easy-to-use on the front and end back end.

How to Create & Sell LearnDash & WooCommerce Promo Codes 1 — Uncanny Codes Features

Click here to download the Uncanny Codes plugin.

Uncanny Automator

Uncanny Automator is the #1 WordPress automation plugin. Create combinations of triggers and actions across 100+ integrations to automate repetitive tasks, improve your workflows, and save time and money.

Automator Mascot Icon 512px

Ironically, Automator has a no-code promise (the computer programming kind) that will make creating your own codes (the promotional kind) easier and a lot more fun than trying to crack the Caesar shift. And, not to mention, a lot cheaper than hiring a developer.

Click here to download the Uncanny Automator plugin.


As the most popular ecommerce plugin for WordPress, WooCommerce needs no introduction—but it’s a key tool in our codebreaking algorithm so we’ll introduce it anyway. In addition to stocking your digital shelves, WooCommerce can handle payment processing, shipping and tracking, marketing, memberships and more.

How to Create & Sell LearnDash & WooCommerce Promo Codes 2 — WooCommerce Homepage

With countless extensions and tons of powerful themes, you can build and customize your ecommerce store anyway you’d like. It’s not an enigma why more than 6.3 million websites power their online shopping experience with WooCommerce.

Click here to download the WooCommerce plugin.

Now that you have Uncanny Codes, Automator, and WooCommerce, there isn’t a spy on earth who can make codes faster than you. In the next section, we’ll show you how to generate codes, create WooCommerce products to sell them and how to configure automations that fit into your workflows.

How to Sell Anything with Codes

In this example, we’ll show you how to generate batches of codes that future students can redeem to gain access to online courses—almost like a cryptographic key!

Leverage partnerships with academic institutions, publishers and marketers and include these codes in printed textbooks and other hard copy content. Then, students and customers can register on your website to redeem the codes and gain access to supplementary material or special promotions.

Alternatively, with just a few tweaks to this example, you can sell codes for event registration or as event tickets, to run limited promotions, or to unlock restricted (read: top secret) content.

Here’s how it’s done.

Step 1: Generate Your Codes

From your WordPress Admin Sidebar, navigate to Uncanny Codes > Generate codes. You’ll be prompted to name the batch of codes that you want to create. We’ve named this batch of codes Introduction to Cryptanalysis.

How to Create & Sell LearnDash & WooCommerce Promo Codes 3 — Uncanny Codes Name this batch of codes

Next, you’ll have to select a method for how you intend to use the codes. We want these codes to enroll users into LearnDash courses/groups when they are redeemed. However, we’ll be selling the codes to academic institutions, corporate entities and/or publishers to distribute to end-users on their own. In order to be able to sell the codes, we’ll have to select the Uncanny Automator option.

How to Create & Sell LearnDash & WooCommerce Promo Codes 4 — How are the codes going to be used

Under Code settings, in the field labeled Number of uses per code, set the value to “1”. Setting the number of uses, or redemptions, per code to anything other than “1” will prevent you from being able to sell them.

Set an expiration date and time. If you’re selling these codes to an academic institution or textbook publisher, you can set the expiration date and time to coincide with the academic year and/or the publication date of new textbook editions.

Next, select Auto-generate codes.

How to Create & Sell LearnDash & WooCommerce Promo Codes 5 — Uncanny Codes Code settings

No two codes are alike—that’s what makes them so tough to crack. To auto-generate your codes, fill in the remaining fields as desired. For example, we’re creating 1,000 unique codes with the suffix “01” for our own internal record keeping purposes. Alternatively, someone selling event tickets in the form of codes might choose location prefixes or suffixes to denote cities, states, and/or countries. In later steps, you’ll see how you can use filters to sort users into different workflows based on data such as code prefixes and suffixes.

How to Create & Sell LearnDash & WooCommerce Promo Codes 6 — Uncanny Codes Code settings auto-generate codes fields

After you’ve configured your code settings, click Generate codes and create a recipe.

Step 2: Create a New Recipe

Once your codes have been created, Uncanny Codes will take you to an Uncanny Automator recipe editor screen that will look something like this:

How to Create & Sell LearnDash & WooCommerce Promo Codes 7 — Uncanny Automator Uncanny Codes New Recipe Screen

Much like with your batch of codes, the first thing you’ll want to do is give your recipe a name that makes it easy to recognize at a glance. For example, we’ve named this recipe Uncanny Codes—LearnDash: Introduction to Cryptanalysis.

Next, in the Actions panel, click Add action. From the menu of available integrations, click LearnDash.

From the drop-down list that appears, select Enroll the user in a course and select the course that you want to associate with your new batch of codes. When you’re finished, click Save.

How to Create & Sell LearnDash & WooCommerce Promo Codes 8 — Automator LearnDash Action Enroll the user in a course

In the Recipe box in the upper right-hand corner, toggle the recipe from Draft to Live.

How to Create & Sell LearnDash & WooCommerce Promo Codes 9 — Uncanny Codes—LearnDash Introduction to Cryptanalysis Recipe Live

This automation will ensure that end-users crack the code (i.e., get enrolled in your supplementary course when they enter a code).

Step 3: Create a New Product

In the Automator recipe editor screen, you would have seen a friendly reminder to create a product associated with your new batch of codes so that you can sell them in your WooCommerce store.

How to Create & Sell LearnDash & WooCommerce Promo Codes 10 — Uncanny Codes Reminder to Create Product

After you’ve created your recipe, from your WordPress Admin Sidebar, navigate to Products > Add new. In the Product data panel, set the product type to Codes for Uncanny Automator.

How to Create & Sell LearnDash & WooCommerce Promo Codes 11 — Product type Codes for Uncanny Automator

Once you’ve set the product type to Codes for Uncanny Automator, the product will automatically be set to Virtual.

Each unique code that is part of a batch is sold individually. As such, the Regular price reflects the price per code. We’ve selected our code batch, Course Access, and set the price per code at $5.00.

How to Create & Sell LearnDash & WooCommerce Promo Codes 12— WooCommerce Product settings

Finish configuring your product as desired, including setting the title, product description, low stock threshold, etc. When you’re finished, click Publish.

Congratulations! You’re now ready to sell codes—just don’t get caught.

Step 4: Start Selling Codes

The next step in selling your codes is setting up a smooth workflow that minimizes friction for your customers and end-users and maximizes your sales.

Based on our product configurations, this is how our customers (academic administrators, publishers, etc.) will view the product page for our access codes:

How to Create & Sell LearnDash & WooCommerce Promo Codes 13 — Introduction to Cryptanalysis Product Page

Once this customer completes their shopping experience, they will pay $5.00 each for five (5) unique codes.

How to Create & Sell LearnDash & WooCommerce Promo Codes 14 — Introduction to Cryptanalysis Shopping Cart

After their order has been completed, the customer will land on a confirmation page with their purchased codes and a clickable Download CSV button. They’ll also receive an email with their codes along with a .csv file with the same information.

How to Create & Sell LearnDash & WooCommerce Promo Codes 15 — Purchased Codes

If we return to the product editor screen after the customer’s purchase as a site administrator, we can see that our inventory of codes has been reduced by five (5) with 995 still available for sale.

How to Create & Sell LearnDash & WooCommerce Promo Codes 16 — Introduction to Cryptanalysis Available Codes

Step 5: Create a Code Redemption Workflow

Once your customers have purchased their codes, they can decide their own method of distribution to the end-user. For example, textbook publishers can print one code in each textbook with instructions for code redemption. Marketers can do the same with their hard copy content or with user-restricted content on their own digital platforms. Academic institutions and office administrators can send the codes via email within their organizations.

To finally crack the code, however, the end-users will need some help from you.

If you are using the Gutenberg block editor, you can simply drag and drop the User Redeem Code block into the page you are editing. Alternatively, you can copy and paste the shortcode [uo_user_redeem_code] into a shortcode block.

How to Create & Sell LearnDash & WooCommerce Promo Codes 17 — Gutenberg Block Editor Uncanny Codes User Redeem Code

More advanced WordPress users can find alternate ways to incorporate code redemption into their workflows. For example, you can combine Uncanny Codes’ native WPForms integration along with Elementor Pro to create a sleek popup like the one below for users to redeem their codes.

How to Create & Sell LearnDash & WooCommerce Promo Codes 18 — Uncanny Codes WPForms Elementor Pop

Next, create an Uncanny Automator recipe that displays the Elementor popup after a user logs in to your website for the first time.

How to Create & Sell LearnDash & WooCommerce Promo Codes 19 — WordPress-Elementor First Time Login Popup Recipe

Users might accidentally click out of your popup without having redeemed their code. Give users the option to recall the popup with an Automator magic button.

In a new recipe editor, in the Triggers panel, select Automator from the menu of available integrations.

How to Create & Sell LearnDash & WooCommerce Promo Codes 20 — Automator Trigger Integrations Automator

From the drop-down list that appears, select A user clicks a magic button.

How to Create & Sell LearnDash & WooCommerce Promo Codes 21 — Automator Trigger A user clicks a magic button

The trigger contains a shortcode that you can copy and paste to embed the magic button anywhere on your website—for example, a user account page.

How to Create & Sell LearnDash & WooCommerce Promo Codes 22 — Automator Trigger A user clicks a magic button Live

Recreate the Elementor Pro popup action from the previous recipe in the Actions panel and toggle your recipe from Draft to Live.

How to Create & Sell LearnDash & WooCommerce Promo Codes 23 — Automator Elementor Code Redemption Popup Recipe

Your new users will be cracking codes like chestnuts!

Bonus: Create a Code Tracking Network

Every master codebreaker knows; you’re only as good as your spy network. If you or your customers need to keep track of code usage—for example, a compliance officer tracking employee enrollment in your course(s)—you can set up this recipe or one similar to it.

(Note: if you set up this recipe to track code usage, you can delete the recipe we made in “Step 2” once this one is Live as adding a user to a LearnDash group also gives them access to the courses associated with that group.)

We’ll start by setting up a trigger and action that creates a LearnDash group when a user purchases codes.

From your WordPress Admin Sidebar, navigate to Automator > Add New. In the pop-up window that appears, select Logged-in users and click Confirm.

How to Create & Sell LearnDash & WooCommerce Promo Codes 24 — Automator Recipe Type Selector Logged-in users

Name your recipe. We’ve named this recipe WooCommerce-LearnDash: Introduction to Cryptanalysis.

In the Triggers panel, from the menu of available integrations, click WooCommerce. From the drop-down list that appears, select A user pays for, lands on a thank you page for an order with a product.

How to Create & Sell LearnDash & WooCommerce Promo Codes 25 — Automator WooCommerce Trigger A user completes, pays for, lands on a thank you page for an order with a product

Next, in the Actions panel, click Add action. From the menu of available integrations, click LearnDash.

How to Create & Sell LearnDash & WooCommerce Promo Codes 26 — Automator Actions Integrations LearnDash

From the drop-down list that appears, select Create a group.

How to Create & Sell LearnDash & WooCommerce Promo Codes 27 — Automator Action LearnDash Create a group

Automator will present you with an editor where you can configure the group settings. We’ve used a token (a dynamic piece of data pulled from our website) to complete the Group name.

How to Create & Sell LearnDash & WooCommerce Promo Codes 28 — Automator LearnDash Action Create a group editor

When you’re finished with your configurations, click Save. Your action should look like this:

How to Create & Sell LearnDash & WooCommerce Promo Codes 29 — Automator LearnDash Action Create a group Live

Now, to complete our “spy network” we’re going to add a second trigger and a second action along with a filter.

In the Triggers panel, click Add trigger then click WPForms or whichever form-building plugin you used for your code redemption form. From the drop-down list that appears, select A user submits a form and select the form that contains the code redemption field. Click Save.

At the top of the Triggers panel, ensure that the Run recipe when setting is set to Any.

How to Create & Sell LearnDash & WooCommerce Promo Codes 30 — Automator WPForms Trigger A user submits a form

In the Actions panel, click Add action then click LearnDash. From the drop-down list that appears, select Add the user to a group.

How to Create & Sell LearnDash & WooCommerce Promo Codes 31 — Automator LearnDash Action Add the user to a group

Automator will prompt you to select a group. Because the group to which we will be adding these users has not yet been created (i.e., another user has not yet purchased the codes) we’re going to use a powerful feature called action tokens (dynamic pieces of data pulled from within the same recipe).

In the Group field, select Use a token/custom value.

How to Create & Sell LearnDash & WooCommerce Promo Codes 32 — Automator LearnDash Action Add the user to a group Group field

In the empty field that appears, click the Asterisk, the token symbol. Under Actions, select Create a group > Group ID. When you’re finished, click Save.

How to Create & Sell LearnDash & WooCommerce Promo Codes 33 — Automator LearnDash Action Add the user to a group Action tokens

With both actions, your Actions panel should look like this:

How to Create & Sell LearnDash & WooCommerce Promo Codes 34 — Automator LearnDash Actions Create a group and Add the user to a group

In our example, the user who purchases our codes (administrators, publishers, etc.) is not the same user who will be enrolling in our course (students, employees, etc.). As such, we need a way to “filter” users into the correct set of actions.

In the Actions panel, hover over the Create a group action and click Filter.

How to Create & Sell LearnDash & WooCommerce Promo Codes 35 — Automator LearnDash Actions Create a group Filter and Delay

In the Conditions window that appears, select WooCommerce > The user has purchased a specific product.

How to Create & Sell LearnDash & WooCommerce Promo Codes 36 — Automator LearnDash Actions Create a group WooCommerce Condition The user has purchased a specific product

In the window labeled Configure the rule, select the product associated with your codes. In our example, that’s Introduction to Cryptanalysis.

How to Create & Sell LearnDash & WooCommerce Promo Codes 37 — Automator LearnDash Actions Create a group Configure the rule

After you’ve selected your product, click Save filter. The action should now look like this:

How to Create & Sell LearnDash & WooCommerce Promo Codes 38 — Automator LearnDash Actions Create a group Filter Live

To ensure that group leaders are not included as group members, you can add another filter to the Add the user to a group action as follows:

How to Create & Sell LearnDash & WooCommerce Promo Codes 39 — Automator LearnDash Actions Add the user to a group Filter Live

With these filters in place, Automator will sort users into groups to suit our workflow.

To complete our “network” and notify the group leader whenever a code is redeemed, we can add another action.

In the Actions panel, click Add action then click LearnDash. From the drop-down list that appears, select Send an email to Group Leaders of a group.

How to Create & Sell LearnDash & WooCommerce Promo Codes 40 — Automator LearnDash Actions Send an email to Group Leaders of a group

Automator will present you with an editor where you can configure the email message to send to group leaders whenever a user fills out the redemption form. Use tokens to include the user’s name and the code they redeemed.

How to Create & Sell LearnDash & WooCommerce Promo Codes 41 — Automator LearnDash Actions Send an email to Group Leaders of a group Email editor

When you’re finished, click Save. Your Actions panel should look like this:

How to Create & Sell LearnDash & WooCommerce Promo Codes 42 — Automator WooCommerce LearnDash Recipe Actions Panel

Finally, in the Recipe box, click Edit next to Times per user and set the value to “1”. This will ensure that, if a user goes on to purchase more codes from this batch in a separate transaction, they won’t create duplicate groups.

Toggle the recipe from Draft to Live.

How to Create & Sell LearnDash & WooCommerce Promo Codes 43 — Automator WooCommerce LearnDash Introduction to Cryptanalysis Recipe Live

Keep Cool, Keep Coding

Now that you’re a master codebreaker, we bet there isn’t anything you can’t sell on your website with the right code, product and recipe settings. What are some of the codes that you need us to crack? Let us know in the comment section below. Until then, keep cool and keep coding!

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.

7 Cool Ways to Award LearnDash Certificates

Gold stars and extra credit are fun ways to motivate students and reward them for their hard work—but they don’t exactly speak to credentials. Certificates, however, give students something to work towards and serve as a tangible testament to their academic achievements. They also just look great hanging on the wall.

In this step-by-step guide, we’ll show you how to improve student engagement using LearnDash certificates. Keep that certificate seal handy—with these eight cool ways to use LearnDash certificates, you’re going to need it!

What You’ll Need

Just like your students need tools for learning, you’re going to need some tools for awarding certificates and improving student engagement. Sadly, a laser pointer won’t do but we think you’ll find these plugins and add-ons much more helpful—and far less hazardous to your eyesight. They’re both easy to use and have a free version you can demo before making an investment.

Uncanny Toolkit Pro

Uncanny Toolkit Pro is the #1 must-have add-on for LearnDash websites—probably because it’s a masterclass in “Saving Time for Your LMS”. In addition to features such as course dashboards and personalized logins, Toolkit improves the functionality of LearnDash certificates to make administration easy and improve the student experience. Enhance your certification process with modules to preview certificates, automatically email them to students and staff or let your students show off their credentials with a certificates widget.

Uncanny Toolkit Pro

Feel free to check out the full list of features and the Pro pricing schedule by clicking here. We’ll be using Toolkit Pro features in our examples but that doesn’t mean you can’t download the free plugin and try out core modules.

Uncanny Automator Pro

If you’re running an LMS WordPress website, then Uncanny Automator is the best way to save yourself time and money. Connect your various apps and plugins for enhanced functionality, automate repetitive tasks and workflows and eliminate bloat from your website. Specifically, Automator packs so many LearnDash triggers and actions into even the free version of the plugin that you’ll feel like you’re cheating on an exam.

Automator Homepage

With Automator’s no-code, click-and-configure interface, you’ll be able to email LearnDash certificates to anyone on your contact list for just about any interaction that occurs on your website. In case that wasn’t enough, you can connect your LearnDash certification process to databases like Airtable, CRM tools like ActiveCampaign, ecommerce plugins like WooCommerce or even membership plugins like Restrict Content Pro.

Definitely try out the free Automator plugin and its dozens of LearnDash actions and triggers. Then, when you’ve gotten the hang of it, upgrade to Automator Pro to make the most of your LMS.

In addition to Toolkit Pro and Automator Pro, we’ll feature other commonly-used plugins and apps such as WooCommerce and The Events Calendar but these are only optional.

7 Cool Ways to Award LearnDash Certificates

Now that you’re all set up with the right tools, let’s look at these seven cool ways to award LearnDash certificates so that your students can start decorating their walls with their credentials.

1. Email LearnDash Certificates with Toolkit Pro

Uncanny Toolkit Pro allows you to email PDF copies of certificates to students and administrators with just a click. Here’s how it’s done:

Step 1: From your WordPress Admin Sidebar, navigate to Uncanny Toolkit > Modules.

Step 2: Scroll down to the modules titled Send Course Certificates by Email and Send Quiz Certificates by Email or type “certificates” into the search bar.

Uncanny Toolkit Pro Send Certificate Modules

Step 3: Toggle the button in the upper right-hand corner to the “On” position.

Step 4: Click Settings to configure the module and draft the email. You can then decide who will receive the email and draft the title and content using dynamic data to personalize the message.

Uncanny Toolkit Pro Send Certificate Module Email Editor

Step 5: Once you’ve configured the settings and drafted your email message, click Save module. Your students will now receive automated emails with a PDF copy of their certificate, ready for printing and framing!

2. Email LearnDash Certificates with Shortcode and Magic

Using some “copy-and-paste” shortcode and a little magic, you can put the power of printing certificates in your students’ hands—or, more accurately, at their fingertips. Upon completion of a course, present your students with a button to click if they would like to receive an emailed copy of their certificate. Here’s how to cast the spell:

Step1: From your WordPress Admin Sidebar, navigate to Automator > Add New. In the pop-up window that appears, select Logged-in users.

Uncanny Automator Add New Recipe Logged-in Users

Step 2: Name your recipe something that makes it easy to remember, like… Certified Magician.

Uncanny Automator Recipe Title

Step 3: From the menu of available integrations, click Automator.

Uncanny Automator Trigger Automator

Step 4: From the drop-down list that appears, select A user clicks a magic button.

Uncanny Automator A user clicks a magic button trigger

Step 5: Your trigger should now look like this:

Uncanny Automator A user clicks a magic button trigger Live

Copy the bracketed text [acutomator_button id=” xxxxx “ “ label=”Click here”] and save it to your clipboard. We’re going to embed this shortcode in the Classic Editor of the desired course.

Step 6: From your WordPress Admin Sidebar, navigate to LearnDash > Courses and click Edit beneath the course for which you would like to offer certificates to students for course completion.

LearnDash Course Editor

Step 7: In the Classic Editor screen, click the Add button icon then click Shortcode and paste the magic button shortcode (the bracketed text we copied from Step 5) into the box.

LearnDash Course Editor Shortcode

Step 8: Next, we’ll need some additional shortcode so that the Automator magic button only appears for students who have completed the course. Thankfully, LearnDash has a library of preset shortcodes for us to use. Click here for the LearnDash Course Complete shortcode or copy the bracketed text: so that the finished block should now look like this:

LearnDash Hide Automator Magic Button Shortcode

The Automator magic button will now only appear to students who have completed the course. You can add a new block above this one, describing the purpose and function of the Automator magic button or you change the label itself to something more descriptive by simply replacing “Click here”.

Step 10: Return to your Automator recipe by navigating to Automator > All recipes and clicking Edit beneath Certified Magician.

Step 11: In the Actions panel, click Add action then click LearnDash.

Automator Action LearnDash

From the drop-down list that appears, select Send a certificate.

Automator LearnDash Send a certificate Action

Use tokens such as User email, User first name, etc. to send, draft and customize your email.

Automator Send a certificate Action Email Editor

Note: When formatting the Certificate body, do not use shortcodes. As in the image above, only use tokens by clicking on the asterisk symbol. You can use these tokens to include information such as dates, user first and last names and courses.

Step 12: In the upper right-hand corner, toggle the recipe from Draft to Live. It should look like this:

Automator Send a LearnDash Certificate from Magic Button Trigger

“Abracadabra!” Just like that, your students can receive their certificate upon course completion with just a click.

3. Sell LearnDash Certificates with Automator and WooCommerce

Learning should be—and often is—totally free. But credentials often come with costs. With Automator and WooCommerce, you can offer paid LearnDash certificates for free courses. Here’s the best way to sell those certificates:

Step 1: The first thing you’ll want to do is to create a WooCommerce product. You’ll then connect this product to a LearnDash certificate using Automator.

From your WordPress Admin Sidebar, navigate to Products > Add New. In the Product data panel, set the product to Virtual.

WooCommerce Virtual Product

Finish configuring your product as you’d like by setting the price, image(s), upsells, cross-sells, etc. Once the product is to your liking, click Publish.

Step 2: In these next steps, we’ll create a recipe that connects your WooCommerce product to a LearnDash certificate. We’ll add an additional trigger so that only the students who have earned the certificate will receive it.

From your WordPress Admin Sidebar, navigate to Automator > Add New and select Logged-in users.

Step 3: Name your recipe. We’ve named this recipe WooCommerce-LearnDash: Certificate Order.

Step 4: In the Triggers panel, click LearnDash. From the drop-down list, select A user completes a course. Select the course associated with the certificate and click Save.

Automator LearnDash A user completes a course Trigger

Step 5: Still in the Triggers panel, click Add trigger then WooCommerce. From the drop-down list, select A user completes, pays for, lands on a thank you page for an order with a product.

Automator WooCommerce A user completes, pays for, lands on a thank you page for a product Trigger

Step 6: Automator will prompt you to configure the rest of the trigger settings. We selected completes then chose our newly created product from the drop-down list. Your finished triggers should look something like this:

Automator LearnDash and WooCommerce Triggers

Step 7: In the Actions panel, click Add action then click LearnDash. From the drop-down list, select Send a certificate and configure the rest of the settings. When you’re finished, click Save. Your action should look like this:

Automator LearnDash Send a certificate Trigger Live

Step 8: Toggle the recipe from Draft to Live. Here’s what the final recipe should look like:

Automator LearnDash WooCommerce Recipe

Step 9: Students can sometimes be forgetful—because their heads are full of knowledge. If you wanted to ensure that your students get the recognition they deserve, you could create a second recipe to send an email upon course completion with a link for them to purchase their certificate. Grab the product url from the product page and paste it into the Email body field of your Automator action. That recipe might look something like this:

Automator Send a Certificate Upon Course Completion

You could also use Automator’s tagging actions with CRMs like Groundhogg, Mailchimp or Mailpoet to send even more compelling emails and boost conversions.

4. Award LearnDash Certificates for Live Event Attendance

Who doesn’t love to have a perfect attendance record? You can use Automator to send certificates to attendees of live events as a way for your students to remember the occasion. Here’s how to send certificates as souvenirs of successful events:

Step 1: From your WordPress Admin Sidebar, navigate to Automator > Add New and select Logged-in users.

Step 2: Name your recipe. We’ve named this recipe Special Event Attendance Certificate.

Step 3: In the Actions panel, click The Event Calendar and select A user attends an event. Automator will prompt you to select your event from a drop-down list. After you’ve selected your event, click Save.

Automator The Events Calendar A user attends an event Trigger

Step 4: In the Actions panel, click Add action then click LearnDash. From the drop-down list, select Send a certificate and configure the rest of the settings. When you’re finished, click Save.

Step 5: Toggle your recipe from Draft to Live. The finished recipe should look like this:

Automator LearnDash Certificate for Event Attendance

Step 6: Concerned about event certificates only being available by email and not from the website? One solution would be to create a hidden course with an associated course certificate. Then, in our event attendance recipe, change the action so it completes the hidden course instead of sending the certificate via email.

This way, the Toolkit Pro module to send a certificate can provide it by email, and the Show Certificates module in the free version of Uncanny Toolkit can show event certificates to students!

5. Credit & Course Group Based Certificates

Credit where credit is due—which, in this case, means awarding certificates. If you have purchased the Uncanny Continuing Education Credits plugin, you can award certificates for groups of courses as well as for credits earned. Here’s how to claim the credit:

Step 1: After downloading the Uncanny Continuing Education Credit plugin, navigate Uncanny CEU > Settings.

Step 2: Scroll down to the section labeled Certificate Email Settings. Check the boxes next to Enable Multi Course certificate and Enable CEU Credits certificate. You can also choose to send the certificate to Site Administrators and Group Leaders as a prudent recordkeeping practice.

Uncanny CEUs Email Certificate Settings

Step 3: From your WordPress Admin Sidebar, navigate to LearnDash > Certificates. Select the certificate you would like to award based on credit or course groups or create a new one. On the right-hand side of the Classic Editor, you’ll see options to award the certificate based on CEU credits accumulated or courses completed.

Uncanny CEUs Certificate for Multiple Course Completion

Once you’ve finished configuring your certificate, click Publish.

Step 4: Finally, navigate to LearnDash > Courses. From the Classic Editor within each course, you can set the CEU value. If you’re not certain how to do this—or would like to “continue” your Continuing Education Credits learning—click here.

6. Award LearnDash Certificates for Course Series with Automator

If you don’t have the Uncanny Continuing Education Credits plugin, you can still award certificates to students who complete a series of courses using Automator. It’s a lot easier than building a curriculum, we promise.

This recipe won’t differ much from previous set-ups using Automator. The only difference is that you’ll add multiple triggers; one for each course. The finished recipe should look something like this:

Automator Send Certificate for Multiple Course Completion

7. Award LearnDash Certificates for Offline Learning Activities

Why just keep the classroom online? You can leverage the power of LearnDash, Automator and Uncanny CEUs to make changes in the real world! Combine Automator with any form-building plugin or web application such as WPForms or Forminator to award credits and send certificates following offline learning events.

Step 1: You’ll need some method of verifying attendance for your offline learning activities—this will serve as the trigger for our Automator recipe. If you already have a verification process, you can skip to the next step.

For our verification process, we’ve created a form. This form can be a simple registration form or a more complex form with information only the attendees would know. It’s up to you to configure as you’d like.

Step 2: Create a new recipe in Automator, select Logged-in users and choose an appropriate title.

Step 3: In the Triggers panel, configure your trigger according to your verification process. In our example, we’ve selected our form-building integration and the form associated with our offline learning activity. Click Save.

Step 4: In the Actions panel, click Uncanny CEUs then select Award a number of custom CEUs to the user. Automator will prompt you to fill out the date, description and number of CEUs to award. When you’re finished, click Save.

Automator LearnDash Certificate for Offline Learning

Step 5: Create a second recipe to send certificates or mark a hidden course complete (and send the certificate with Uncanny Toolkit) based on the total number of CEUs a student has earned. That recipe might look something like this:

Automator LearnDash Certificate for Offline Learning Recipe Live

Keep Certifying

For students, certificates are as good as gold medals… if there was an Academic Olympics. And tools such as Uncanny Automator and Uncanny Toolkit help you leverage the certification process to improve your LMS and, ultimately, your students’ experience.

Try out a few of the examples we provided in this post and we promise you’ll spend less time administrating and more time educating. Then, when you’re ready, upgrade to the All Access Pass and get even more Uncanny plugins and add-ons, not to mention industry-leading support. Now that’s certifiably cool.

Uncanny Groups for LearnDash 5.0

Yes, the Uncanny Groups release is that big. It deserves the 5.0 label, because this is a giant release with dozens of changes and over 100 hours of development and testing time. A lot of what’s new probably won’t even be on the radar of most users, so we’re hoping this release brings a lot of happy surprises!

Ready for the list of what’s new? It’s a big list, but if you’re on Uncanny Groups user, we definitely recommend reading through to the end.

Pooled seats

Ever wish you could set up some groups in a hierarchy, and instead of having seats managed for each individual groups, the entire set of groups could draw from a shared pool of seats? That’s what this is. When enabled, groups that are connected together share their seats.

Suppose you sell course access to a school and grant that school 1,000 seats to use at their discretion. They’re going to want to divide students up into classes for reporting purposes as well as to manage course enrollment. Instead of having to figure out how to assign 20 seats to one group and 30 to another, now the entire set of classrooms shares from a total pool of 1,000 seats. If a Grade 9 math class uses up 20 seats, then a grade 10 music class uses 30, other groups now have a pool of 950 available seats.

That’s the simple introduction. We tried to keep it as straightforward as possible, but there’s a lot to consider when implementing pooled seats.

To get started, you’ll have to think about whether you want to enable pooled seats for specific groups only, and let Group Leaders control that setting, or whether you want all group hierarchies to have pooled seats enabled. Here’s what it looks like:

LearnDash Pooled Seats Settings

Checkbox 1 allows Group Leaders to control whether or not to enable seat pooling at the individual hierarchy level by adding a checkbox to the Group Management page. This checkbox is only shown when a top-level group is selected in a hierarchy, and it looks like this:

Top Level LearnDash Group Hierarchy

If checkbox 2 is also selected on the settings page, this forces all groups in all hierarchies to use the pooling system. It means the setting for pooled seats is now longer managed at the hierarchy level and instead enables it globally.

So how does it actually work, and what happens in various use cases? Let’s cover an example to make this more clear.

Suppose you start with a parent group with 100 seats assigned, and that parent group has a child group that has 50 seats. If pooled seats are enabled for the hierarchy, both parent and child groups would immediately see that the hierarchy now has 150 seats. (And if you disabled the pool again, the seats would return to 100 and 50 respectively.) When viewing the parent or child groups in this situation, all would show the same number of total and available seats.

In cases where enabling seat pooling results in no available seats, perhaps because of admin overrides, Uncanny Groups calculates the total pooled seats as the current number of users across all groups in the hierarchy and adds 10, but this default value can be overridden with a filter:

apply_filters( 'ulgm_pool_seats_add_extra_seats_in_parent', absint( 10 + $diff ), $diff, $group_id )

Just a note too that for any of this to work, group hierarchies must first be enabled in LearnDash settings and relationships must be set up for groups by administrators. There is not yet any way to manage group relationships in the front end or by Group Leaders.

New pricing options

For a very long time now we’ve had requests to override pricing rules and quantities for seats. Typically requests would sound something like these:

“I want to sell a group product for $999 that includes 100 seats, I don’t want users to have to choose a quantity of 100 and change my course prices to hit this pricing target.”

“I only want to sell groups with a minimum of 5 seats, they shouldn’t be available when the quantity of seats is just 2.”

We would always recommend WooCommerce pricing plugins that allowed easy overrides, but it wasn’t a great workaround. Today’s update adds native solutions to these problems to Uncanny Groups.

Here’s what the pricing section now looks like when setting up a Group License product:

LearnDash Group pricing rules

Normally, of course, the price is ignored for a Group License product, instead calculating the price based on the cost of each Group Course product and the number of seats purchased. But when “Fixed price” is checked, the “Regular price” field is used as the group cost regardless of the number of seats purchased. In the example above, we’re charging $100 for exactly 10 seats. Users cannot purchase another amount, they just buy a product here that includes 10 seats for that fixed cost.

The “Minimum” and “Maximum” quantity fields can be used independently to set limits around seat purchases. These might even be used to set up more advanced pricing rules for different group types.

New Gutenberg blocks

One of our customers rightly pointed out that we had Gutenberg blocks in other plugins for redemption and registration shortcodes, but we didn’t for [uo_groups_registration_form] and [uo_groups_redemption_form]. Now we do! Look for the new blocks for “Enrollment Key Redemption” and “Enrollment Key Registration”.

The new blocks add support for the normal shortcode attributes as well, so the registration block (for example) has settings for redirections, making the key optional, logging the user in automatically on submission and the default role.

New report sort options

We made it a lot easier to sort the various Uncanny Groups reports by different columns on load using shortcode attributes. There are a ton of new attributes here, so we’ll post the list with quick details:

Group management [uo_groups]

  • Enrolled users
    • enrolled_users_orderby_column – The title of the column used to sort. Default: First name
    • enrolled_users_order_column – Designates the ascending or descending order of the orderby parameter (asc/desc). Default asc.
  • Group leaders
    • group_leaders_orderby_column Default: First name
    • group_leaders_order_column Default asc

Course Report [uo_groups_course_report]

  • orderby_column Default: Date Completed
  • order_column Default: desc

Quiz Report [uo_groups_quiz_report]

  • orderby_column Default: Date
  • order_column Default: desc

Assignments Report [uo_groups_assignments]

  • orderby_column Default: Date
  • order_column Default: desc

Essay Report [uo_groups_essays]

  • orderby_column Default: Date
  • order_column Default: desc

For some of the above, please note that the values are stored in the browser cache, so you may not see changes immediately after updating shortcodes. Try a hard refresh or incognito mode for testing.

Other important updates

Group Leaders can now manage users and Group Leaders for child groups when they’re assigned to the parent group level. This makes it a lot easier to set Group Leaders up at the parent group only to manage hierarchies instead of adding them to every child group.

In the Manage Progress report, we now show a spinner when a search is active to make the activity more clear to users on slower sites.

A variety of WPML improvements are also now in the plugin.

That wraps up the highlights for the Uncanny Groups for LearnDash release! The full list of updates is available in the changelog.

5 Ways to Create Free Trials of Your LearnDash Courses

Everyone learns at their own pace. Some students can run through an entire course in a day. Others might need a few weeks to really comb through the material. That’s why creating free trials for your LearnDash courses is one of the best ways to serve your students. It’s also the best conversion-boosting tool you didn’t know you had!

In this step-by-step guide, we’ll show you five different ways to set up free trials of your LearnDash courses. While all methods offer their own advantages, we’ll focus on the methods that give students the most flexibility to learn at their leisure.

Why Offer Free Trials?

If you trust your product, why not let it speak for itself? Limited trials are one of the strongest marketing tools at your disposal.

Try, Don’t Deny

Free trials offer no-risk, hands-on experience. Not only do your students get a taste of your course material but they can also immerse themselves in your community, giving them another reason to sign-up after their free trial expires. For once, your students will be the ones doing the testing—and we know that you’ll pass with flying colors!

Get a Lead, Guaranteed

More often than not, users have to register in order to start their free trial. These new registrants represent valuable leads and you can start to gather information on their needs and preferences such as their mobile versus desktop usage. Even if they don’t become a paying customer after their trial expires, you can still use their contact information to extend exclusive deals.

Remitment Commitment

Imagine getting married to a perfect stranger. You have no idea who could be waiting at the other end of the aisle! That’s kind of what it’s like when you purchase an item you’ve never sampled before—minus the unbreakable vows, expensive rings and joint tax filings. Free trials give customers the opportunity to get to know your product before they elated say, “Yes! I will mar—buy your product!”

No Lack for Feedback

Use your free trials as an opportunity to make improvements. When did most free trial registrants become paying customers? When did they fall out of the free trial? You can even send a post-trial survey, asking your customers what they enjoyed about the trial and what they would have done without. For the unconverted, offer a special discount if they complete the survey or an extended free trial for more feedback.

Convinced that you absolutely must offer free trials? Here are four simple methods to get the job done.

Method 1: LearnDash Course Access Settings

For LearnDash users who want to set up one or two simple free trial courses—separate from their regular course offerings—this is the most straightforward method.

LearnDash has a feature called Course Access Expiration built right into the Course Editor. Though this feature was designed for content protection purposes, you can also use it to create dedicated free trial courses. Here’s how it’s done:

Step 1: Create Free Trial Course

From your WordPress Admin Sidebar, navigate to LearnDash LMS > Courses. In the upper right-hand corner, click Add New and create your dedicated free trial course.

Step 2: Configure Course Access Settings

In the Course Editor, navigate to Settings and scroll down to Course Access Expiration. Toggle the button to the On position and set the length of your free trial in days.

LearnDash Course Access Settings

That’s all! LearnDash will now grant access to the course for the specified number of days, starting on the user’s enrollment date. LearnDash also gives you a Data Deletion option so you can choose to either store or erase a registrant’s course data after their access has expired.

LearnDash Data Deletion

The Course Access Expiration setting works universally, meaning that it will apply to all users who register for the course. If you’re trying to set up a free trial for your existing courses, this method won’t suit your needs as you’ll have to create clones for each course for which you would like to offer a free trial. Additionally, your trial registrants won’t be able to transfer their progress from the trial course to its paid counterpart.

Method 2: Sample Lessons

LearnDash offers another very simple way for setting up free trials. Instead of time-limiting trial content, you can create lessons within courses that are free for anyone to sample. Here’s how it’s done:

  1. From your WordPress Admin Sidebar, navigate to LearnDash > Lessons.
  2. Select the lesson(s) you would like to offer as a free sample or create new ones.
  3. In the Lesson Editor, navigate to Settings then scroll down to the Lesson Access Settings section.
  4. Toggle the button next to Sample Lesson to the On position.
  5. Sit back and let your courses sell themselves!

LearnDash Sample Lesson Setting

This method for creating free trials of your LearnDash courses is perfect for letting your students learn at their own pace. However, there’s no way to restrict your trial content to signed-in users only without using another plugin such as Restrict Content Pro, MemberPress or WooCommerce Memberships. Using this method, you won’t always be able to track progress and follow leads.

Method 3: WooCommerce Trial Subscriptions

We’re going to create a free trial using a subscription and the built-in free trial feature in WooCommerce. For this method, you’ll need WooCommerce Subscriptions.

WooCommerce Subscriptions

After you’ve purchased WooCommerce Subscriptions, download the LearnDash WooCommerce integration for free. It’s one of the easiest ways to improve your LMS functionality and improve your students’ experience.

LearnDash WooCommerce Integration

You’ll need to have an active LearnDash license and be logged in to download the plugin. But once you integrate your LMS with your e-commerce platform, your students will be gobbling up your courses faster than you can make new ones.

Step 1: Configure LearnDash WooCommerce Integration

LearnDash offers a detailed step-by-step guide for setting up the integration but here’s a brief walkthrough:

  1. After downloading the LearnDash WooCommerce plugin, from your WordPress Admin Sidebar, navigate to WooCommerce > Settings.
  2. Click on the Accounts & Privacy tab.
  3. Deselect the Allow customers to place orders without an account option.
  4. Select the Allow customers to log into an existing account during checkout option.
  5. Select the Allow customers to create an account during checkout option.

Step 2: Configure Your Subscription Product

  1. From your WordPress Admin Sidebar, navigate to Products > Add New.
  2. Name your product—we named our product Free Trial Subscription—then scroll down to the Product data panel.
  3. From the drop-down list, select Simple subscription and click the box next to Virtual.
  4. Set the price, billing frequency and expiration period. As this is intended to be a free trial, set the Sign-up fee to $0.00.
  5. Set the length of your free trial in the Free trial field. For example, we set our free trial to 14 days. After that period, the payments will begin unless the user cancels their subscription. But with course material this good, why would they?!
  6. Next, thanks to the LearnDash WooCommerce integration, you can decide which of your LearnDash groups and courses this subscription product grants access to.
  7. Finish configuring your subscription product then click Publish. That’s it! The integration really does make it that easy.

WooCommerce Subscription Product Settings

To create even more dynamic free trials—and to save yourself a ton of time—there are a couple of other methods we highly recommend.

Method 4: Automated Free Trials for Courses

If you want to offer free trial access to an existing course, you could register and unregister students manually—but, between marking papers and offering extra lessons, who has time for all that busywork? Thankfully, there is a better way to offer free trial access to one of your existing courses where students can save their progress after their trial expires.

In order to automatically enroll and unenroll students, you’ll need a little help from Uncanny Automator and WooCommerce. Automator is the #1 WordPress automation plugin. Using recipes—combinations of triggers and actions—you can connect your favorite plugins and apps and automate your workflows to save time and money.

Automator Homepage

To create free trials for your LearnDash courses using Automator, you’ll need the Pro version. While the free plugin won’t be able to optimize your free trial registration process, it still offers plenty of functionality for LearnDash users. So, while we’re on the topic of free trials, download the free Automator plugin and try it out before making a decision. When you’re ready to upgrade, click here for Automator’s full pricing scheduling.

Step 1: Create a New Recipe

Once you’ve downloaded the plugin and registered your account, navigate to your WordPress Admin Dashboard. From the sidebar, navigate to Automator > Add New. In the pop-up window that appears, select Logged-in users.

Automator Recipe Type Selector

Step 2: Name Your Recipe

Start by naming your recipe so that you can easily identify it later on. We’ve named this recipe Free Trial Registration.

Step 3: Configure Your Trigger

Automator lets you decide how you would like to register users for your free trial. You could create a sign-up sheet with WPForms or Formidable Forms or you could even register students for a free trial of an advanced course if they passed its prerequisites. In this example, we’ve simply chosen to register all new students in our free trial.

In the Triggers panel, click WordPress. Then, from the drop-down list that appears, select A user is created with a specific role. Select the role that you’ve assigned to designate students and click Save.

Automator WordPress Trigger Configuration

Make sure that your trigger is set to Live before continuing.

Step 4: Configure Your Action(s)

In the Actions panel, select LearnDash.

Automator Action LearnDash

From the drop-down list that appears, select Enroll the user in a course. Automator will then prompt you to select the course for which you would like to offer a free trial. Click Save.

Automator Action LearnDash Enroll the user in a course

Your action should look like this:

Automator LearnDash Action Live

This action will get your new students started on their free trial—but how does it end? This is where the real magic of Automator comes in.

Beneath this first action, click Add another action and LearnDash once again. From the drop-down list that appears, select Unenroll the user from a course.

Automator Action LearnDash Unenroll the user in a course

Automator will prompt you to select a course. Choose the same course from your first action and click Save.

Now you’ll want to make some minor adjustments to this second action so that it doesn’t fire until the end of your new student’s free trial. To do this, hover over the three dots in the right-hand corner of the action and click Delay.

Automator Action Filter and Delay

An editor window will appear where you can choose to either schedule a date for the action to fire or set a time delay. To create a free trial, set a time delay. We’ve chosen a 14-day time delay to create a 14-day free trial. After you’ve set the length of your trial, click Set delay.

Automator Action Delay Configuration

Your recipe is now fully configured to automatically enroll and unenroll new students in your free trial. But what about those eager beavers who are so impressed with your course that they decide to purchase it before the end of their free trial? You can add a filter to the second action to unenroll students based on whether or not they’ve purchased course access.

Once again, hover over the three dots in the right-hand corner of the second action but this time, click Filter. In the pop-up window that appears, select WooCommerce then, from the drop-down list, select The user has not purchased a specific product. Automator will prompt you to select the product associated with granting access to your LearnDash course. Once you’ve selected the correct product, click Save filter.

Automator Action Filter WooCommerce The user has not purchased a specific product

Your free trial actions are now fully figured. Your Actions panel should look something like this:

Automator LearnDash Action Live

Step 5: Start the Trials!

With this recipe, Automator can handle all of the busywork of registering and unregistering students in your free trial. All that you have to do now is to toggle the recipe from Draft to Live. It should look something like this:

Automator LearnDash Recipe Live

Method 5: Automated Free Trials for Groups

It’s important that your students receive a broad education—and that they get an accurate sample of your course offerings during their free trial. If you want to offer a more generous free trial package than a single course, you can use the LearnDash Groups function in conjunction with Automator to enroll free trial participants in a whole curriculum worth of courses.

Step 1: Create a Free Trial Group

From your WordPress Admin Sidebar, navigate to LearnDash > Groups and click Add New in the upper right-hand corner. In the Edit Group page, click on Courses. You can use the field labeled Group Courses to add and remove courses from your free trial offering.

LearnDash Group Course Settings

Once you’ve finished configuring the rest of your new trial group settings, click Publish.

Step 2: Create a New Recipe

Just as with the previous recipe, from your WordPress Admin Sidebar, navigate to Automator > Add New. In the pop-window that appears, select Logged-in users.

Step 3: Name Your Recipe

We’ve named this recipe Free Trial Group Registration.

Step 4: Configure Your Trigger

Just as with the previous recipe, you can choose to register trial participants using any number of apps and integrations. For this example, we’ve decided to register trial participants using Fluent Forms.

Automator Fluent Forms Trigger Live

Step 5: Configure Your Action(s)

In the Actions panel, click LearnDash then select Add the user to a group. Automator will prompt you to select the free trial group that you create in Step 1 of this method. Once you’ve selected the correct group, click Save.

Automator Action LearnDash Add the user to a group

Beneath this first action to add the user to a group, click Add another action. From the options available, click LearnDash then, from the drop-down list, select Remove the user from a group.

Automator LearnDash Action Remove the user from a group

Automator will prompt you to select a group. Once you’ve selected your free trial group, click Save. Next, hover over the three dots in the upper right-hand corner of this second action and click Delay. Set the delay for the duration of your free trial.

You Actions panel should look like this:

Automator Action LearnDash Group Enroll and Unenroll

Step 6: Ready, Set, Trial!

We hope that your students are ready to sprint their way through your amazing free trial package! All you have to do now to start the learning marathon is toggle the recipe from Draft to Live. It should look like this:

Automator Recipe Free Trial Group Registration Live

Who Doesn’t Love Free Trials?

Whether you just wanted to set up a simple free trial course or wanted to offer total—albeit temporary—access to your online school, there’s a method that lets your students learn at their own pace. And, just as importantly, lets you work at your own pace.

By setting up free trials with Automator, however, you can make the most of your free trials. Add free trial participants to your mailing list with Groundhogg or MailChimp. Automatically tag the participants who didn’t opt-in after their free trial expired. And why not follow-up with an auto-generated coupon code if, after a few weeks, they still haven’t signed-up? Send free trial data to Airtable so you can better understand what drives conversions. With Automator, you can do all of that—and a lot more—and still save time and money.

What kinds of free trials would you like to offer your students? Let us know in the comments section below.

Uncanny Codes 4.2 includes our most requested feature!

Uncanny Codes gives you the ability to generate codes that users can redeem for almost anything on your WordPress site.  Originally built to provide a way for site admins to distribute codes for LearnDash course and group access, code redemption can now be redeemed for anything supported by Uncanny Automator, including memberships, achievements, store credit, coupon codes and much more.

With the ability to generate hundreds or thousands of codes for use by businesses and organizations, one of our most requested features was the ability to cancel individual codes within a batch, without deleting the batch and associated records of redemption.

Uncanny Codes version 4.2 now provides this feature, and it’s super easy to use.  Simply go to Uncanny Codes > Cancel codes, then upload a CSV containing a column with the heading “code” and the list of codes to be cancelled.  You can even upload the same file you download from a code batch.  Uncanny Codes will ignore the other columns:

Once you’ve uploaded the .csv, you’ll see a confirmation of the codes that were cancelled:

Codes that have been cancelled can no longer be redeemed by users:

And that’s all there is to it!  No more orphaned, valid codes floating around in the wild indefinitely or struggling to invalidate part of a code batch that has been refunded.

Let us know what you think of the new feature in the comments below.

Uncanny Codes: Form integrations and redemption updates

It’s time for a big update to Uncanny Codes, our popular platform for generating, tracking and redeeming codes that can do almost anything in WordPress. It’s been some a longer than usual time since our last update, so in today’s release, we’re adding a lot of really important features that will transform how it’s used on many WordPress sites.

New form integrations

Use Fluent Forms or Forminator?

You’re in luck, the Uncanny Codes 4.1 release adds new integrations both popular form builders. Here’s what the field looks like in Fluent Forms:

Uncanny Codes Fluent Forms Integration


And here it is in Forminator:

Uncanny Codes Forminator Integration

It works just like our current integrations with Gravity Forms, WPForms and Formidable. Add the field to a form and code redemption will be processed on form submission. You can use the new fields on everything from single-field redemption forms for logged in users to registration pages that require users to enter a valid code in order to register on a website.

Allow users to redeem the same code multiple times

This is a big new feature, one that we know caused some user frustration in our previous versions.

Up until now, Uncanny Codes would only let a single user redeem a code once, even if the code was set up to allow multiple redemptions. Originally we believe this was a good rule to have in place, as it prevented accidental redemptions by the same person and made codes a lot easier to manage.

Our customers pointed out, however, that this limitation didn’t always make sense. Maybe users repeated a course or needed to unlock something more than once, so instead of them having to juggle multiple codes and figure out what’s been used and what hasn’t, they get one code. When they’re ready to repeat whatever action the user performs (e.g. reset course progress to take it again, create a new job listing, add seats to a group), the user can just keep using the same code. In those situations, where the might be multiple iterations over time of the same action, multiple redemptions of the same code make a lot of sense.

As there is some complexity here, this new feature is managed by batch and it’s not managed in the UI; it does require a snippet of code.

Need more granular control or prefer to manage it at the code level? Here’s what you can leverage instead:

 * Allow multiple code redemptions per user
	function ( $allowed, $codes_batch_id ) {
		 * Only allow a certain number of times for certain batches.
		 * Remove this "if" statement block to apply it globally.
		if ( 123 === $codes_batch_id ) {
			$allowed = true; // use true or false

		return $allowed;
 * Number of times a code is allowed to be reused
	function ( $times, $codes_batch_id ) {
		 * Only allow a number of times for certain batches.
		 * Remove this "if" statement block to apply it globally.
		if ( 123 === $codes_batch_id ) {
			$times = 3; // any number can be used here

		return $times;

The code examples above allow site owners to control whether or not code reuse by the same person is allowed, by code batch or globally, and if allowed, how many times a code in each batch can be reused by the same person.

Override redemption limits

When we originally introduced a way to sell codes generated by our plugin with WooCommerce, we intentionally built it to be simple and easy for purchasers to manage codes. We restricted purchased codes to a single use each, as that made it easier for purchasers to track redemptions and distribute codes. Based on customer feedback, however, sometimes some flexibility around the number of allowed redemptions is needed. With that in mind, today’s release allows an override for code redemption limits.

This update leverages a new filter for maximum flexibility, so here’s a sample of how to use it:

	function ( $max_usage, $type, $codes_group_id ) {
		// filter by a specific code batch,
		// or comment the restriction out for all batches
		// Automator type max usage
		// of 5 per code:
		if ( 10 === (int) $codes_group_id ) {
			return 5;

		return $max_usage; // change to any number

With that snippet in place, you can unlock additional redemptions that would otherwise be allowed for the batch. We even change the output in the UI to make overrides and override values more obvious:


That’s it for new features in the Uncanny Codes 4.1 release, though there are also a few fixes and improved PHP 8.1 compatibility.

What’s new with Uncanny Groups

The Uncanny Owl team has been hard at work adding some interesting new features to our popular Uncanny Groups plugin over the last few weeks. Given the scope of some of the changes, we want to walk users through and them outline how to use the new options.

Group-specific welcome emails

We’ve had feedback from some of our users that global emails to welcome users to groups just aren’t sufficient. Different groups may have different instructions and expectations, maybe an introduction by an instructor is warranted, perhaps it’s just different branding that’s important. Whatever the case, we have tried to address this gap by adding group-specific welcome emails.

Now, when you edit groups, you’ll see a new section that looks like this on the edit group page in the Group page tab:

Group-specific emails for LearnDash

It works just the way other welcome emails work on the Uncanny Groups > Settings page; the same tokens are also available. To use this new feature for specific groups:

  1. Check the Override “Add and invite (new user)” email checkbox. This tells our plugin to use this email template instead of the global one.
  2. Populate the Subject and Body areas with appropriate content.

Now, when new students are added to this group, they’ll receive the contents of this email rather than the global one.

If this section is not set up for any groups, we’ll just defer to the global email template.

Group Leaders can send emails based on current course status

This is a big change that will affect your Group Leaders if you have granted access to send emails to students.

As a quick refresher, on the Group Management page you can add the group_email_button=”show” to your [uo_groups] shortcode (or to the Gutenberg block) to expose a tool that Group Leaders can use to send emails to students. Up until Uncanny Groups 4.4, this email option let you target students by group progress (e.g. no group courses started, all group courses complete, group courses started but not complete) and send them emails. This was typically used to remind students that they needed to complete their assigned activities.

What it lacked was a way to target specific courses only, like maybe a Group Leader only wanted to send reminders if users hadn’t finished any of 3 specific courses. Or maybe a Group Leader wanted to send a congratulations message to anyone who completed a specific course early. To address these other scenarios, here’s how the email tool has been changed:


LearnDash Group Leader Email Tool

Note the new Group Courses section. With it, you can choose 1 course, several courses, or the “Any course” option. This allows much better targeting of email recipients, but it is certainly a change to what Group Leaders are used to.

There’s one other change here too: If there are multiple Group Leaders in a group, you can change the reply-to address. The Sender email always has to be the admin email address, since it should be linked to the site domain and will therefore improve email deliverability, but the reply-to address can be for the Group Leader of the sender’s choice.

Required first and last names

While first and last names were always required when Group Leaders added individual students to a group, the tool for bulk adding multiple students had those fields as optional. In today’s update, there’s a new attribute for the [uo_groups] shortcode (and an option for the associated block): first_last_name_required=”yes”. By adding that to the Uncanny Group Management page shortcode, the First and Last Name fields in the bulk add & invite users tool adds * next to the associated column headings (to indicate those fields are mandatory) and values must be in those fields to add the users to the group.

This change was suggested by Chris Hodgson at Discover Elearning to ensure that all users added to groups would have valid first and last names populated on the LearnDash certificates.

Tighter Uncanny Automator integration

If you’re not yet using Uncanny Automator, we have added a 1-click installer that installs and activates Automator with 1 click. Certainly Automator isn’t required, but given how much we keep adding to it for LearnDash groups, it has become an increasingly compelling option.

Here are just a few of the Groups-related improvements we have added to Automator in the last week:

  • Run actions based on whether or not someone is a member of a group or its child groups (e.g. only send a certificate to a user that’s part of the Uncanny Owl group hierarchy, including users in the Dev Team group under the Uncanny Owl group parent)
  • Remove a user from all LearnDash groups in a single action/recipe
  • Remove the user as a leader of a group (perhaps a site sells Group Leader access to groups on a subscription basis, and when a subscription is cancelled or payment fails, there needs to be a way to remove Group Leaders from the group automatically)

If that first example doesn’t sound possible, it might be because we only added integration-specific conditions to Automator Pro in May. With that support, now you can choose to only run actions if users:

  • Completed a specific LearnDash course
  • Enrolled in a specific LearnDash course
  • Are members of a LearnDash group
  • Are not in a specific LearnDash group
  • Are members of a group or its child groups
  • Are not members of a group or its child groups
  • Have not completed a specific LearnDash course

LearnDash condition

And the rest

It’s been some time since our last big update, so the Uncanny Groups 4.4 release has a lot of improvements behind the scenes, including:

  • The “Group Product Swap” tool now supports Subscription product types as well as Group License products
  • Easier filter options to hook in and override column headings in the Group Course report (we’ll try to put together a blog post explaining how easy it is to add extra columns, like a certificate expiry date)
  • Improved WPML compatibility (including submission to WPML for certification)
  • Improved PHP 8.1 compatibility

Full details are available in the changelog.


Add Seats to Group Subscription, Excel Reports and More

This is the Uncanny Groups for LearnDash update that many of our customers have been eagerly anticipating. After months of development, we’re excited to introduce a feature unique to our plugin that will completely transform B2B group subscriptions for LearnDash: support for adding seats to existing subscription-based groups.

We wrestled with the logic for months. How would someone manage multiple subscriptions linked to a single group? What if one of several subscriptions was cancelled? Could we minimize the confusion of having multiple subscriptions for individual groups? And would all of this be easy enough for end users to understand?

In terms of the visible changes to Group Leaders and admins, it’s all very straightforward. Administrators see a new section under Uncanny Groups > Settings to enable the option (we don’t want it to appear with no context for existing sites) and to set up a link so users can learn more about adding seats to subscriptions. We do recommend setting a page up with more details because the behaviour will be different depending on your settings around synchronization in WooCommerce Subscriptions.

WooCommerce Subscription Changes for Uncanny Groups

And for Group Leaders, the Group Management page gets a new Add Seats button just like the one they’re probably used to seeing for groups purchased via one-time payment.

It’s a powerful new module, but to make this work and to deliver what we think balances the user experience with technical restrictions, there are some tips to keep in mind as you use this new feature. Here are a few key points to consider:

  • Completing an order with additional seats for an existing group will create a new subscription in addition to the existing subscription. We strongly recommend enabling “Synchronise renewals” under WooCommerce > Settings > Subscriptions > Synchronization to align renewal dates across multiple subscriptions. This will avoid situations where customers are flooded with renewals on different days each month.
  • We modified subscription behaviour so that if 1 subscription associated with a group is cancelled, all subscriptions for that group are cancelled. We do warn Group Leaders about this at the time of cancellation, and it’s because there is no safe way to keep some seats active and not others. If a group with 20 students and 20 seats has a subscription for 4 seats cancelled, which 4 students would lose their seats? There’s no way to address this that would be intuitive to Group Leaders, so we cancel all subscriptions for the group. Similarly, when a subscription is reactivated for a group, we create a new, single subscription for the group that matches the number of seats required for the group.
  • The option to add seats to subscription-based groups is a global setting; it cannot be enabled and disabled for certain groups only.
  • It is not possible to add courses to subscription-based groups. That’s a different and more significant level of complexity that we may or may not be able to support in future.
  • The new functionality works with existing subscription-based groups, not only new groups.

As this new feature is a huge change, we suggest testing it on a group before rolling it out and announcing it to all of your Group Leaders.

It’s a big release

We could have definitely made the Uncanny Groups 4.3 release a 5.0 update instead of 4.3, but we’re trying to keep numbering aligned with our other plugins. The new functionality for group-based subscriptions is amazing, but there are some other huge additions to this release.

  1. New report exports. Many of the reports in Uncanny Groups previously had CSV export options. But why some and not others, and why CSV only? We conceded and added about 10 new export options to reports in Uncanny Groups. Please note that because these are new exports and new options, most are not shown by default and must be enabled using shortcode attributes. More information for each report is available in our Knowledge Base.
  2. New columns in the Course report. It’s now possible to show the course enrollment date and group name in the Course report. These optional columns are invaluable with exports in particular, since group name is shown on the report inside WordPress but the export was missing the additional context.
  3. Choose score type in the Quiz report. Would you rather show points in the quiz report instead of percentages? Now you can, thanks to the new “score-type” attribute. Use score-type=”percent” to show a percentage (the default) and score-type=”points” to show points instead.
  4. Automator set count updates. The new version supports updating the seat count for a group when seats are removed via an Uncanny Automator action.
  5. Group subscription cancellation date is now deferred until a subscription becomes cancelled, not just when it is pending cancellation. What this means is that users who cancel a subscription don’t lose the access they paid for immediately, instead the group access is only removed on the subscription end date.

For a full list of updates and changes, make sure to check out the Uncanny Groups changelog.