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.

WooCommerce

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!

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.

Top automation tools for WordPress

Most of us might cringe when we hear the words, “Do more with less.” However, there is some wisdom with doing more with what you have by being more efficient.

For instance, let’s say you compose a standard email response to potential clients. After writing the same three paragraphs each time (about 100 times now), you decide to create an email template instead. Your new template reduces all that typing you did before to one little click!

With that one simple template, you discover that you save a couple of hours every week. Welcome to the world of automation.

The wonderful thing with automation is that it scales up beautifully for larger and more complex tasks. And, when your processes do become larger, that’s when integrations comes in to connect things together. We’ll see shortly how automation and integration go hand-in-hand.

How can automation help me?

You still might be thinking, how can you tell if automation and integration tools can help your situation? Well, do you ever find yourself repeating mundane tasks like:

  • Downloading your client’s email attachments from your G Suite account then uploading them to your project folder on Dropbox?
  • Updating a training record in Google Sheets when attendees attend live events?
  • Tagging a new subscriber in your Mailchimp audience when they download one of your PDF giveaways?
  • Manually registering a new user to a course in LifterLMS, and to the course’s group forum in BuddyPress once they purchase a course from your WooCommerce store?
  • Looking for abandoned purchases in Stripe so you can create a Trello card to task your sales team to kick-off a down-sell campaign in Hubspot to salvage a customer?
  • Creating social media posts every time you publish a new blog article?

When it comes to efficiency, there are two words that come to mind: integration and automation. Integration with other systems, apps, and plugins is a necessity if you want to offer more features to your customers. It just goes with the territory.

Integrating more things together does enrich your offerings to help you reach your business goals. But, if you don’t automate your workflows to take advantage of your integrations, then having more integrations can hinder your growth.

What we’ll cover

Regardless of whether you’ve got a marketing, learning and development, eCommerce, or blogging site, if you are searching for ways to simplify your online business processes, then you’ve come to the right place.

In this article, we’ll reveal our top automation tools. We’ve grouped the tools according to their areas of speciality:

  • Non-WordPress.
  • CRM integration.
  • WordPress plugin integration.
  • Plugin specific automation.

From first-time to experienced website owners, we think there’s something for everyone in this set of tools. Let’s cover each one.

Non-WordPress

Zapier

Zapier builds on the adage: “Work smarter not harder.” Zapier’s strength lies in automation through integration with thousands of apps. It takes advantage of the fact that most businesses depend on many disparate digital technologies. And, trying to connect all these platforms together manually will not scale.

To make these apps, services, and websites work for you, you need something that can automate connecting all the pieces together. Insert Zapier here. Using Zapier, means all your business components are talking to each other to get the job done.

Some typical Zaps (workflows) include:

  • Checking newsletter subscriber’s email addresses with Zapier’s Data Validation to reduce your campaign bounce rate.
  • Broadcasting GitHub repo issues to a Slack channel to get your support team working on resolutions faster.
  • Automatically adding Zoom webinar participants to an AWeber list to spare you from manual data entry.

Explore more possibilities on Zapier.com.

A quick tour around Zapier

Zapier’s dashboard shows you a menu of options, your plan and quota, and a call to action (CTA) to connect something including personalised Zap suggestions.

You’re led through the Zap creation process with human-friendly prompts, e.g., When this happens … Do this… In addition to Zapier’s powerful search feature, you’ll see shortcuts to apps you’ve used before. That’s super convenient.

View, manage and see the status of all of your Zaps in one place. You can organise your Zaps into folders and even share the folders for collaboration. You can quickly turn on and off your Zaps. There’s also a bulk delete, which you can recover Zaps from the trash just in case you need them back.

Zapier’s Strengths

  • It supports more than 2,000 integrations—mostly B2B non-WordPress at the time of writing.
  • There’s support for three types of delayed Zaps. You can now schedule to run at specific intervals.
  • There’s the ability to build conditional Zaps.
  • It uses an Intuitive user interface (UI) for creating Zaps. No coding required.
  • It offers a free version.
  • It’s well documented.

Zapier’s Weaknesses

  • It has limited integrations with WordPress. There is a Zapier WordPress plugin available but it’s still in beta and has very few triggers and actions.
  • It stores application data on third-party servers (Amazon AWS).
  • There’s no support for multiple triggers.
  • Its multi-step Zaps are available only on paid plans.
  • You can’t customize system-generated sender email address for Zapier notifications.

Integromat

Integromat is an alternative to Zapier. It can automate many of the same use cases that Zapier can. For example, it can help sync your WooCommerce customers with your Google contacts, post Google Analytics reports to your marketing team’s Slack channel, lanch an email broadcast announcement when you have a new product, and more.

But, it doesn’t talk to as many apps as Zapier does. Integromat supports over 500 apps as opposed to Zapier’s more than 2,000 integrations.

Usually, webhooks operate in a trigger and action fashion with no data exchange. In other words, when a particular event happens, then do this activity. One of the interesting things that sets Integromat apart is being able to share data between scenarios using a data store.

Below is Integromat’s search interface. You’ll see this when you go to create a new scenario. The app selections presented under the search field are sorted alphabetically. Zapier, if you recall, shows your favourite apps at the top of the list.

Integromat by far has more ways to interact with WordPress compared to Zapier. Integromat supports 7 triggers, 30 actions, and 8 searches. Zapier has only 5 triggers, 4 actions, and 1 search.

 

Like Zapier, you can view and manage all your scenarios in one place. An especially useful feature is Integromat’s support for versioning of scenarios. This is extremely handy if your scenarios are updated frequently or if you are working in teams where more than one person are authoring scenarios.

For logging, Integromat breaks down the activities for each scenario. This way, you know what was done to them, when something happened, and how they are behaving.

 

Integromat’s Strengths

  • It has an advanced UI that makes them stand out from the competition. From the UI, you can create instant trigger webhooks, custom webhooks, and custom webhook responses.
  • Like Zapier, there’s no need to write any code to integrate with other systems.
  • You can restore previous versions of a scenario.
  • Its WordPress integration is more mature and offers more options than Zapier.
  • There’s support for storing data (offline) from a webhook.

Integromat’s Weaknesses

  • It uses non-standard terminology that can be confusing for new users.
  • It has a unique interface that can also be a disadvantage because it takes time to learn and get used to.
  • Their support for more than 500 integrations at the time of writing is significantly less than Zapier.
  • Your data is stored in the European Union.
  • The help documentation is minimal (mostly videos too), not always up to date, has typos, and contains links to missing pages.

CRM integration

WP Fusion

WP Fusion’s tagline is “Connect WordPress to anything.” This plugin’s primary function is connecting other WordPress plugins to a non-WordPress CRM. Naturally, WP Fusion is a superb choice if you are using an external CRM system. We use it on this site to add people to our mailing list, trigger automations on product purchases, and better engage with customers.

WP Fusion’s key features are:

  • It allows you to display CRM data within WordPress.
  • You can tag your CRM contacts when they download or purchase products.
  • You can keep your CRM accounts in sync between your WordPress sites.
  • It offers membership capabilities and shortcodes for a variety of plugins.
  • It gives you the ability to monitor stale accounts so that you can perform actions to win customers back.

The Plus and Professional plans include features such as abandoned cart reporting, redirecting logins, Zapier (webhooks) integration, and protecting downloads.

A quick tour around WP Fusion

We’ll use the Mailchimp integration in this quick tour. In your /wp-admin/, you’ll need to navigate to Settings > WP Fusion > Setup and set up your CRM before you can do anything. Have your API keys ready.

Once you’re done selecting your CRM, go back to the General Settings tab (first tab) to specify the rest of the CRM settings you need. Below is an example of linking WP Fusion to a specific audience (aka Mailchimp List) to sync with.

WP Fusion’s strengths

  • It supports 40 CRM systems.
  • There are more than 102 plugin integrations.
  • There’s a free plan (WP Fusion Lite).
  • It’s well documented on the main WP Fusion website.

WP Fusion’s weaknesses

  • The Lite (free) plan only supports synchronizing accounts with contact records and managing tags.
  • Add-ons are available only with the Plus and Professional plans.
  • Not all of the supported 40 CRMs are 100% compatible.
  • There can be only one CRM integration per site. If your site uses Mailchimp and Hubspot, for example, you will have a difficult time.
  • There is no setup wizard. It’s not intuitive that right after you install the plugin, you need to head over to  Settings > WP Fusion > Setup to select your CRM before you can get started.

Groundhogg

Groundhogg is an impressive CRM in itself. What’s more, it’s also a fully-fledged marketing automation tool built for WordPress. Having something this powerful running in your WordPress site changes everything.

Without Groundhogg, you would need to adopt a third-party CRM that stores your data and automates your workflows outside of WordPress. This means that your business’s website (on WordPress) and your online marketing systems (e.g., HubSpot or Click Funnels) are separate. Because they’re separate, you end up spending a lot of time making your site and marketing tools work together.

Let’s look at an example. Say we are using Mailchimp for our CRM and a marketing automation tool. Just to get a simple newsletter opt-in form on your site is a challenge. First, you’d have to build your Mailchimp audience. This includes defining your segments and tags. Then, you use Mailchimp’s form builder to create your opt-in form for your audience. After reading the Mailchimp docs and doing some research online, you realise that you will have to either mess around with HTML embed code, use a third-party plugin, or hire a developer to place your form on your site. And, we haven’t even talked about styling your form, testing it, or running any automation workflows.

With Groundhogg, your website, contacts, and opt-in forms are all in one place. Just imagine performing the big three marketing activities (managing your audience, creating marketing funnels, and launching email campaigns) all from your WordPress site.

A quick tour around Groundhogg

There’s no denying it, Groundhogg has a lot to take in. And, that’s putting it lightly. Thankfully, they have an Official quickstart Course for Beginners that you can start directly from the Groundhogg welcome page.

Being able to sync your WordPress user accounts with your CRM contacts is a must-have feature. It’s no surprise that you can easily do this with Groundhogg. You’ll find these settings under Groundhogg > Tools > Sync/Create Users (tab).

Do you need to import or export contacts? No problem. You can import your contacts using comma-separated values (CSV) format via Tools > Import. You can conveniently export your contacts from directly from Groundhogg’s Contacts page or from Tools > Export.

Out of all the other CRM systems in this article, Groundhogg is the only one that offers a unique editor for specifically building marketing funnels. And to top it off, you can get a running start by using a pre-built funnel template such as the Lead Magnet Download funnel pictured below.

Pro tip: Grounhogg lets you import and export funnels, which is tremendously helpful when you are working in a team or if you just want to make a quick backup or restore from an earlier export.

We just saw how nice it is to have ready to use funnel templates. Well, you can say the same thing about their canned emails. Right out of the box, you get about a half a dozen email templates in draft mode ready for you to use. This obviously saves a lot of time typing and re-inventing the wheel. So, that means you can get up and running fast if you take advantage of these templates.

Groundhogg’s strengths

  • It consolidates CRM, email marketing, and marketing automation tools.
  • There’s a unique marketing funnel builder that provides about a half a dozen templates. You can even export and import funnels.
  • It comes with pre-built canned email templates. The email editor allows you to set the From and Reply To fields. You can also override email headers.
  • It’s designed to be streamlined with fewer external integration hassles.
  • Your data stays on your site.
  • It has the advantage of native WordPress integration possibilities.
  • It provides a welcome page that features a quickstart course video along with 4 more step by step video tutorials. The welcome page also has links to help documentation and courses.

Groundhogg’s weaknesses

  • Its form builder is a rudimentary TinyMCE style text editor that relies heavily on shortcodes. There are no built-in styling options.
  • There are so many features that Grounhogg can be daunting at first. However, the makers of Groundhogg mitigated this with exceptional documentation.

Jetpack CRM

On July 20, 2020, Automattic Inc. (makers of WordPress.com and WooCommerce) announced the arrival of Jetpack CRM. Jetpack CRM, formerly Zero BS CRM, is a WordPress plugin and can run independently of the Jetpack plugin. Jetpack CRM is like Groundhogg in that it’s a full CRM that runs in WordPress. However, it does not have marketing automation out of the box as Groundhogg has.

If you visit Jetpack CRM’s website, you’ll notice immediately that its target audience is the so-called hacker-entrepreneurs. And, if you use Jetpack CRM, you’ll realize that its power comes from its extensions.

A quick tour around Jetpack CRM

Extensions are the way to go to get the full benefit of Jetpack CRM. Some of their newer integrations include Google Contact Sync, ConvertKit, WorldPay Sync, Envato Sync, Contact Form 7, and Bulk Tagger. You’ll need to pay for these extensions as there are no free ones at the time of writing. The pricing plans include “CRM” extensions, but the website doesn’t define which ones are CRM extensions. The website breaks out the extensions into the following categories: analytics, sync tools, email marketing, forms, payments, and tools.

The folks at Jetpack CRM realize that the onboarding process for CRMs can deter people from using them or worse they don’t set them up the right way. Jetpack CRM makes the start-up process easier with a modern and simple to follow setup wizard.

Jetpack CRM’s strengths

  • There’s a welcome start-up wizard.
  • There are more than 30 extensions available for individual or bundled purchases.
  • It has a B2B Mode that allows you to organize your contacts under a Companies layer.
  • It’s writer-friendly. There’s support for shortcodes, LaTeX, and markdown.
  • It leverages other useful Jetpack features such as stats, image galleries, and social sharing.
  • There are free, premium plans, and extensions for purchase. The entrepreneur bundle was a strong selling point for Zero BS CRM. This could change if an Elite plan is introduced because the email campaign feature might move from Entrepreneur to Elite.
  • It is also developer-friendly like Groundhogg.
  • It’s well documented.

Jetpack CRM’s weaknesses

  • The free version only has basic CRM capabilities.
  • There’s no bulk email feature in the free version. You’d need to purchase an extension such as their own Mail Campaigns extension. They also offer an AWeber and Mailchimp extension.
  • There’s no marketing automation in the free version. You’d need to purchase their Automations extension or use an external third-party marketing automation tool.
  • There’s no clear or well-defined funnels module. You’d need to purchase its Automations extension to build your workflow. Then, you’d need to purchase its Funnels (reporting only) extension to run your reports.
  • Only basic CSV import is available in the free plan. You’ll need to purchase an extension like Woo Sync to keep your data synced up.

WordPress plugin integration

WP Webhooks

Ironikus (makers of WP Webhooks) focus on a niche part of connecting systems together with a WordPress site: webhooks. The WP Webhooks  plugin boasts some of the more interesting use cases such as:

  • Create a user as soon as a new signup happens on Teachable.
  • Create a post using Alexa (Voice Control).
  • Create user accounts from a Microsoft Excel list.
  • Send data to Intercom when a user logs into your WordPress website.
  • Run custom PHP code using incoming data.

It comes with free and paid Pro versions. With the Pro version, you can publish a post via email, remotely manage files and media, and integrate with WooCommerce.

A quick tour around WP Webhooks

WP Webhooks has a somewhat unconventional user interface. The pleasantries of a friendly welcome page or setup wizard aren’t available, as the target audience seems to be mainly developers.

Below are screen captures of the Send Data and Receive Data pages. The documentation is embedded on the pages themselves—sort of like context-sensitive help if you need it.

WP Webhooks strengths

WP Webhooks weaknesses

  • There’s no setup wizard. You need to figure out on your own that you have to go to the Settings tab (fifth tab down) first before you can do anything.
  • It integrates with only three other WordPress plugins: EDD, CF7, and WooCommerce (Pro version).
  • The help documentation isn’t obvious. There’s no documentation on the main WP Webhooks site. If you dig around in the plugin itself, you’ll eventually find links to documentation that is hosted on a separate site. Most of the how-to documentation are videos, which isn’t great if you prefer to read or if you like to do searches using query strings.

Uncanny Automator

Uncanny Automator is the market leader for connecting WordPress plugins with other plugins, other WordPress sites and non-WordPress systems. At the time of writing, it integrated with over 50 plugins and external tools.

Automator’s use cases range from simple welcome emails to complex workflows that span separate WordPress sites. Since Automator integrates with Zapier, there are more than 2,000 non-WordPress apps at your disposal, plus anything that supports webhooks can be integrated too.

A quick tour around Uncanny Automator

Getting started with Automator is easy, just choose what plugins or tools you want to “trigger” your automation.

Uncanny Automator anonymous trigger

Creating anonymous recipes is a key feature that permits the automation of user account creation and connecting with webhooks. Again, the friendly interface coupled with contemporary card layout designs helps make a fairly technical process easier to complete.

Uncanny Automator anonymous recipe

Data that is passed into a recipe is pulled into a form interface for you by using using tokens (also known as variables). In other platforms, these tokens are called merge tags. They’re called merge tags because when the automation is actually running, these tokens are merged with (or replaced by) the real data that they represent. Think of them as placeholders.

This is a good example of creative approaches for automating the sharing of data between applications and systems.

Creating a WordPress user account from WP Forms

One of the key selling points of Uncanny Automator is its visual representation and organisation of a recipe. With a short glance, you can get a bird’s eye view of what your recipe is going to do and the status of each component of your recipe. The image below shows a completed webhook recipe as an example.

Uncanny Automator webhook recipe

Uncanny Automator’s strengths

  • There’s built-in support for multiple triggers per recipe.
  • All your data stays inhouse on your website’s servers.
  • It has the most plugin integrations available for WordPress.
  • You easily share and sync data between multiple sites (if you have Automator installed on each site).
  • It allows you to turn your free forms plugins into user registration forms without extra paid addons.
  • It can handle complex use cases.
  • You have the ability to turn on/off different components of your recipes.
  • It supports Zapier and Integromat, which open up integrations to more than 2,000 non-WordPress apps.
  • The Pro version supports anonymous recipes that allow you to automatically create user accounts and integrate apps using webhooks.
  • There’s a dashboard for viewing activity logs at the recipe, trigger, and action level. This can be a lifesaver when you’re troubleshooting an issue or testing out a new recipe.
  • It’s well documented, and the documentation is easy to find. This includes developer-specific knowledge base articles.

Uncanny Automator’s weaknesses

  • There’s no ability to delay or schedule triggers.
  • You currently can’t copy (clone) recipes.
  • There’s no versioning of recipes. So, you can’t revert to a previous version if needed.
  • You can’t import/export recipes.

Plugin specific automation

AutomateWoo

AutomateWoo is a premium extension for WooCommerce from the makers of WooCommerce and WordPress.

With the combination of AutomateWoo’s core features, add-ons, integrations, and customizable code, just about everything you need for marketing automation should be covered. This includes CRM functionality and support for bulk email campaigns from its integrations with AgileCRM and ActiveCampaign.

A quick tour around AutomateWoo

Your sales statistics are vital. Having a dashboard with important graphs and metrics will tell you if your business is on track with one quick peek. Like Uncanny Automator, AutomateWoo’s interface is up to date and blends (instead of clashing) with WordPress’s design.

AutomateWoo’s Text Variables are analogous to Uncanny Automator’s Tokens. Using Text Variables (handlebar syntax), you can pull in user account information to customise your emails.

AutomateWoo’s strengths

  • It’s perfect for targeted email marketing based on customer activity.
  • It has a workflow builder.
  • There’s excellent support for email use cases with no max limit for the number of emails sent.
  • It has a variety of automated emails that can fit almost any eCommerce scenario.
  • Twilio integration for SMS support is built-in.
  • It’s a developer-friendly plugin as you would expect because it comes from Automattic (parent company of WordPress and WooCommerce).
  • The documentation is great.

AutomateWoo’s weaknesses

  • It’s not designed for broadcast or bulk email campaigns. But, it integrates with Mailchimp and ActiveCampaign.
  • Its workflow builder doesn’t seem to be advanced as Groundhogg’s marketing funnel builder. There aren’t any templates. But, there are how-tos for creating loyalty, subscription, and win back workflows.

InfusedWoo

As its name suggests, InfusedWoo gives you seamless integration between your WooCommerce shop and your InfusionSoft account. InfusedWoo can automatically sync your contacts, sync your products, manage subscription sales, and apply tags based on purchases to keep your store and CRM in lockstep. On top of that, you can run email marketing campaigns (Infusionsoft campaign builder), track affiliate links and rescue abandoned carts as part of the integration that the plugin provides.

A quick tour around InfusedWoo

A splash page and Guided Setup wizard will get you up and running in no time.

There are two noteworthy mentions. InfusedWoo now supports pay plans and automation recipes. You can offer payment plans with InfusedWoo’s new Payplans feature located under the Receiving Payments tab. Click on the image below for the enlarged version.

The new Automation Recipes feature is not to be missed. It comes with a myriad of canned triggers, conditions, and actions. These standard automation features that you’d expect from third-party automation tools are right in your InfusedWoo menu under Automation > Automation Recipes.

InfusedWoo’s strengths

  • There’s a convenient Guided Setup wizard.
  • You can sync user accounts with Infusionsoft contacts.
  • You can import/export products, orders, and automation recipes.
  • It has built-in support WooComerce subscriptions. You can also use a combination of Infusionsoft’s Campaign Builder and WooCommerce APIs as an alternative.
  • There’s support for conditional automation recipes.
  • It comes with Infusionsoft’s payment gateway built-in, and it can run in test mode.
  • You can also use your favourite payment gateways such as Stripe, Authorize.net, or PayPal.
  • It supports payment plans.
  • There’s a dedicated GDPR Toolkit feature.

InfusedWoo’s weaknesses

  • There’s no support for multi-step automation recipes.
  • The Cart Abandon Campaign option in the Automation tools options is misleading. It’s only a blueprint on how to set up a cart abandonment campaign in Infusionsoft.
  • There’s no help documentation (publicly accessible).

Conclusion

We hope by now that you can see the advantages of integrating and automating your processes as your business grows. Integration and automation create an “efficiency cycle” (if you will). Put it this way, being more efficient means you can take on more business. More business translates into more demands. More demands will introduce additional offerings which beg for more integration. With more integration, you’ll need to bump up your automation to be more efficient as the cycle repeats.

In this post, we armed you with our selection of the top automation tools for non-WordPress platforms, WordPress ecosystems, CRMs, and eCommerce sites. As you can see, each of these tools has its strengths and weaknesses. Just like all tools, some work better than others given the situation. Always step back and look at your ultimate goal. You might find that one business case calls for Groundhogg, WP Fusion, and Zapier. Another case is perfect for AutomateWoo and Uncanny Automator. It just depends.

Intro to WordPress Staging Sites

You have a successful WordPress site. You’re happy because you got your site up and running quickly on a tight budget. Now, your website is the main source of your customers and sales. As your business grows, so does your need for more functionality and plugins.

A few times a month, you make content updates and do theme and plugin upgrades on your site all by yourself. You’ve never had any problems—you think running a website is a piece of cake.

Then, after you run a bulk update of a dozen or so plugins, you start getting emails from customers, your WordPress site, and even Google. The emails say that you have a serious issue with your site. You bring up your browser and try to pull up your site. Unfortunately, all you get is a blank white screen.

This nightmare scenario happens all too often. The good news is, it can easily be avoided if you use what’s called a staging site or staging environment.

A staging site is a separate copy of your live website. The keywords being: separate and copy.

Because a staging site is separate from your live site, you can do things like upgrading to a new version of WordPress, upgrading your theme, or updating your installed plugins without affecting your live site. And, since a staging site is a copy of your live site, you can make changes and test the changes on a staging site as if it was your live site. After you verify that the changes you made on staging look good and work the way they should, then you can make those same changes on the live site.

Testing updates on a staging site before applying the updates on your live site helps ensure:

  • Your site is still fully functional and continues working as it should after updates.
  • There’s no disruption of your online presence that you rely on to promote your brand awareness and preserve your credibility.
  • There’s no loss of revenue and customers because of unplanned downtime.
  • There are no search engine penalties from non-working pages or missing content (e.g., 404 or 500 errors).
  • There’s no loss of precious site content or customer data—namely for membership, eLearning and eCommerce sites.

Staging sites don’t have to be just for testing plugin, theme and WordPress upgrades. They can be an entire development environment for a brand new site, a place for troubleshooting and fixing an issue, or even testing performance tweaks. Do you want to try out a new plugin or the latest beta version of WordPress? No problem. These are the kind of things a staging site lives for. And, if you care about your business and your customers, you shouldn’t be experimenting or making untested updates in your live site.

WordPress Staging Sites

Does the phrase, “a copy of your live site” set off your SEO warning bells? Rest assured that staging sites are almost always password protected and/or blocked from indexing. That means they won’t affect SEO standings of your live site.

Do you need a final thumbs-up from your client before releasing new website features? Staging sites are invaluable for getting the site owner’s feedback on enhancements or fixes before they are made public.

Staging environments have been an integral part of the software development lifecycle (SDLC) for decades. Their main purpose in the SDLC is to make sure you got things right before going live. However, just because you have a staging site doesn’t mean you’re completely in the clear. They can be misused like any other tools in your toolkit. Not to worry—whether you’re new to staging sites or a seasoned veteran, we’ve got your back.

In this article, we’ll guide you through our best practices for using a staging site. We’ll begin by describing how you would incorporate it into your workflow. Then, we’ll dive into our list of dos and don’ts. Lastly, we’ll briefly explore some of the WordPress hosting providers who support staging sites.

Please note that we’ll use the words staging site, staging environment, and staging to all mean the same thing. Similarly, we’ll refer to the live site as production from time to time.

Incorporating a staging environment into your workflow

Life before staging

Let’s review a typical WordPress site’s update workflow without using a staging site. It would look like this:

  1. Log in to your site’s admin Dashboard.
  2. Click on Updates on the left sidebar menu.
  3. Under the Plugins section, click on Select All.
  4. Click the Update Plugins button.
  5. Cross your fingers.

Then rinse and repeat for installed themes and even WordPress.

When all plugins are updated, maybe you bring up your home page to do a visual inspection. If there are certain pages or forms that are critical to your business, you might even go the extra step to check if they’re still working.

Let’s say your website is an eCommerce site as an example. You try to purchase one of your products as a test. You find out that your shopping cart isn’t working. No products are being added, and you can’t figure out why. You’ve only got two options at this point, and both of them aren’t pretty.

Option 1: troubleshoot and fix the issue knowing your site is broken, and the clock is ticking

Thankfully, figuring out which plugin broke your shopping cart is pretty straight forward. One way to do this is to deactivate all your plugins. Then, turn them on one-by-one. Each time you turn back on a plugin, test your shopping cart. Once the shopping cart breaks again, the last plugin you reactivated before the issue reappeared is your culprit.

But, it’s not over. We know which plugin is breaking our site, but we don’t have a fix yet. Your site is still broken. And, the clock is still ticking. Now what? You’ll need to contact the plugin author, report your issue, and request an emergency fix or a temporary workaround. How long it takes for the vendor to verify your issue and deliver you a patch is anybody’s guess. All the while, no one can buy anything from your site.

Option 2: restore from a backup and accept a loss in data

Assuming your hosting plan comes with a daily backup, you can restore your site from the last backup yourself. Otherwise, you frantically call customer support for help.

You finally get your site restored, but there’s some data loss. Depending on how old the backup is that you restored, you could be hit with one to hundreds of lost product orders, customer data and subscriptions. Even one lost large purchase could deliver a critical blow to your business.

Life with staging

Here’s how things play out if you use a staging site for updating your plugins.

  1. Log into your hosting provider.
  2. Click on the one-click staging button to clone a copy of your live site to a staging environment.
  3. Log in to your staging site’s admin Dashboard.
  4. Click on Updates on the left sidebar menu.
  5. Under the Plugins section, click on Select All.
  6. Click the Update Plugins button.

Now, we can run our shopping cart test again. But, this time we’re testing to see how things are working on the staging site. Not the live site. Insert a sigh of relief here.

This means you can verify that your site is all good at your own pace. If there’s an issue, your live site isn’t affected. If there are no issues, then you can safely update all the plugins on your live site.

Best practices

The dos

1. Take a full backup

A full backup means that all the files and database tables that make up your site are copied to a safe location. This is opposed to a partial backup where you can select to back up only parts of your site. A full backup includes WordPress core files, theme files, media files, and the database (DB).

We recommend that you always make a full backup of your live site before creating the staging site copy. You can quickly restore everything back to normal from the full backup if needed.

It’s important to note that there is a difference is between a daily backup and an instant (unscheduled) backup—sometimes called a snapshot. A snapshot taken just before updating the live site is good to practise for minimising data loss if something goes wrong.

For instance, let’s say you didn’t take a snapshot, and your latest full backup was done 23 hours ago. Now, you want to abort the process of updating your live site for some reason. So, you restore from yesterday’s backup (it’s the most recent). When you check your site, it’s back up and running. You’re feeling good until … wham, you notice that the 200 purchases and customer accounts that were created over the past 23 hours are gone.

Always take a snapshot before creating a staging environment and before updating your live site.

More and more hosting providers are making the staging process easier. Kinsta’s staging to live feature is a one-click action that pushes your staging to site to the live site. Before the push to live, the live site is automatically backed up as part of the process. Similarly, the WP Staging plugin recently added an automatic snapshot feature to their push staging to live function.

2. Disable emails

While working in staging, you should disable all emails. You definitely don’t want to inadvertently flood your customer’s inboxes if the work you’re doing on staging is kicking out email notifications all over the place or your site sends scheduled emails. The Disable Emails module in our Uncanny LearnDash Toolkit is designed to remedy this.

You can prevent your staging site from sending any emails by using the Disable Emails module. To test if your emails notifications are working without sending out actual emails, use the Disable Emails module in conjunction with the Email Log plugin. Disable Emails will block outgoing emails, but Email Log will record what notifications would go out as if they were sent.

3. Clear the cache

It happens to all of us. After we make a simple change, we reload the page to see it, and it’s not there. We hit reload a couple more times—still nothing. We go back to the change. The change looks good. We hit the save button just to be extra sure. We click reload again. Nothing. We’re just about the scream before we realise we should clear our caches.

Assuming your change doesn’t have an error, you save your work, and you’re looking at the right page, this problem is almost always due to caching. To save time and your sanity, we recommend disabling your caches while you are making changes in staging. Only enable them when you are doing performance testing or to make sure there are no plugin conflicts if you use a caching plugin. Make sure you clear your caches on the live site too when you push changes.

4. Version your child theme

Version your child theme by updating the version field in the header section comments of child theme’s style.css file. This way, anyone who uses your child theme can make sure they’re pulling down the latest static files rather than what’s cached in the browser.

WordPress Twenty Twenty child theme header

The don’ts

1. Never push the staging database to production

Your production database should be the single source of truth. Treat it like your personal gold mine. Therefore, never contaminate it. This means, never push your staging database to your live site, especially if you have an elearning, ecommerce or membership site (in general any site where users have accounts and/or generate new data). Overwriting your production data from staging is never a good idea. Some automated staging tools do not permit pushing the staging DB to production. Instead of pushing from staging to a live site after validating changes, reproduce the steps you took on staging. It’s often helpful to keep a log as you test on staging, noting the updates you ran and changes you had to make to ensure everything worked properly after the updates. (If code updates were required to fix things and you use git repositories, it should be easy to push the fixes required on a staging site to the live site automatically, and if changes affecting the database are needed then keep a lot of everything that was changed.)

2. Don’t take partial backups

As we mentioned above, full backups are the only way to fly. You might see options in your dashboard for backing up only the database, media, theme, or plugins. When it comes to working with staging environments, don’t take partial backups. We need to make sure we can always restore our complete site—not just pieces of it.

3. Don’t keep your backup on the server

There are two big reasons you shouldn’t keep your full site backup on your website. First, if your server crashes and all files are lost, your most recent full backup is also gone. Second, your backup file(s) takes up disk space. Depending on the size of your site, your backup files can be humungous. Your available disk space could shrink to nothing if you have an increasing stockpile of backups on your site. Your site will screech to grinding halt when you’re out of disk space. Managed WordPress hosts typically offload backups to Amazon or another cloud provider to ensure they’re kept safe.

4. Don’t give public access to your staging site

When staging sites are created on hosting plans that support them, they should automatically be private. However, you should always check especially if you manually created your staging site. It’s a good idea to password protect your site, and at a minimum make sure that search engine indexing is blocked. Staging sites should be controlled environments, meaning, you know what’s happening to the site at all times. Otherwise, you can be wasting precious time chasing your tail trying to figure out why the changes you made yesterday aren’t working today.

5. Never automatically update WordPress, themes, and plugins

If your site is mission-critical, meaning that you’ll lose revenue and customers if your site goes down, you should never automatically update your WordPress version, your active theme, and any active plugins. You’ll need to check with your hosting provider’s policy to see what their default update settings are. If they default to any kind of automatic updates, then you’ll need to know if you can disable them. This is especially important for ecommerce, elearning and membership sites where the signed in experience is different and automated checks wouldn’t notice issues resulting from updates.

Automatic updates for themes and plugins are usually disabled by default. If they aren’t, then you can write filters in a must-use plugin or use a plugin like Easy Updates to turn this off.

To be clear, disabling automatic updates doesn’t mean you’re off the hook for keeping your site up-to-date. Never automatically updating means, you should take the time to test your site with updates before going live.

Setting up staging on various host providers

If you’re looking for a hosting company, we recommend that you choose a provider that has built-in support for staging sites. Below, we’ve picked 3 hosting providers that support staging sites in their plans.

Let’s go through how you would set up a staging site for each provider.

WP Engine

1. Log into your User Portal.

2. Navigate to Sites.

3. Click on the site name that you want a staging site for.

 

4. Click on Add Staging.

5. Click on the Copy from existing tab.

6. Enter the name of your staging site in the Name the environment field.

E.g., “mysite-staging”. Using this example, your staging site’s domain will be “mysite-staging.wpengine.com”.

7. Select your production environment in the Select an environment to copy from drop-down.

8. Select your most recent backup from the Select a backup to use drop-down.

9. Click on the Create environment button.

An email notification is sent when the staging site is ready.

Kinsta

1. Log into your dashboard.

2. Navigate to Sites.

3. Click on the site that you want a staging site for.

4. Select Staging in the drop-down menu located at the top right of the page.

5. Click the Create a staging environment button.

Kinsta generates a staging site name and URL for you. The URL follows this format.

https://staging-sitename.kinsta.cloud

Where sitename is the name of your live site.

Pressidium

1. Log into your dashboard.

2. Navigate to Websites.

3. Click on the site name that you want a staging site for.

4. Click on the Staging tab at the top.

5. Click the Create Staging button.

When the staging site is ready, you’ll see a notification in your dashboard. Your staging site’s link will look like:

https://mysite.dev.onpressidium.com

Where mysite is the name of your live site.

If your current hosting company doesn’t have staging support, you should request that they add it to their offerings. If they don’t plan on embracing staging sites any time soon, it’s time to shop around for a provider like the ones we’ve featured above.

Conclusion

We recommend that you always use a staging site even for updates that seem completely harmless. Conversely, we don’t ever recommend using your live site to test changes or try out new things.

If you’re still doubting that staging sites are vital for your business, there are a couple of rare cases where we think you could forgo a staging site:

  • Your live site is private and has no visitors except for you.
  • Your live site is public, but no one cares if it’s up or down.

Cost used to be a factor for skipping the use of a staging site. Luckily, more and more hosting providers offer free one-click environments. With increasing support for staging sites, there’s no reason to find out the hard way that running your operations without a staging site is far more expensive.

Let’s face it, having a website (whether it’s on WordPress or not) requires continuous care and feeding. If you want a healthy and safe website that’s always running the latest/greatest features, investing in a staging site is a no brainer.

How to ask for WordPress plugin support (the right way)

Uncanny Owl recently passed a big milestone for our Help Desk: Ticket #10,000. We started using a Help Desk system in 2016, before we started selling plugins, and it’s perhaps our most valuable tool. It’s the first thing we check in the morning, the last thing we check at night, and using it ensures that the thousands of customers that depend on us stay happy.

After a few years of providing support to over 3,500 different people, we know all too well what makes a WordPress support ticket easy to resolve and what types of inquiries are going to drag on for some time. Everyone wants a quick fix to their question or problem, and while we as plugin vendors do our best, there’s a lot you can do as a plugin customer to make the process more efficient. In this article, we’ll outline the best ways for making sure that your problem is resolved quickly and accurately.

Help Desk Stats

Be specific

Last Thursday I took a call from a plugin customer who wasn’t very happy with our product. Despite us having a 10 minute call about it, I still don’t know why he was unhappy. The best answer he could give me was that “nothing worked”. I tried to dig deeper, to find out what functionality he was using and even why he bought the plugin, but he could only tell me he bought it to make his site “better”. I know he was frustrated, but he couldn’t articulate specifically what he was expecting that the plugin wasn’t doing.

Receiving a ticket that tells us that a “plugin isn’t working” makes it difficult for us to help and means that we have to follow up asking for more details, which in turn delays resolution. Tell us what you’re expecting to happen that isn’t happening; let us know what you are experiencing now. If you see an error message, include the error message.

Be kind and stay calm

We know that you’re reaching out to us because you’re experiencing a problem that’s causing anxiety and asking us may be your last resort. We do our best to empathize with the situation and we approach tickets as if they were about our own site. When we receive a ticket that starts off with an introduction like, “Hey guys, love your plugins, but I’m running into an issue right now with XYZ and I’m hoping you can point me in the right direction”, it’s going to set the right tone for the conversation and put everyone at ease. We’re also going to stay focused on resolving the issue.

While it is (fortunately) very uncommon, taking the opposite approach slows things down and adds tension to the relationship. Early last week, a customer reached out to point out a small error in a line of code that we shipped out (that had negligible impact on functionality). It could have been a simple interaction: “Hi Uncanny Owl team, I noticed a small issue in this file on line 123, it should be ABC instead of XYZ, can you confirm the fix and include it in the next release?” That would have been fantastic, we would have investigated and confirmed it immediately, and the ticket would have been closed. Instead, the user led with, “Do you guys even test anything before you push updates?”—and then we’re automatically on the defensive. We then have to be more careful about planning our reply and approach to a resolution.

Provide a test case

Last week we had a ticket that effectively said, “Some of our users report that they can’t complete a course, please fix it ASAP.” I didn’t know what plugin they were using of ours, what was supposed to trigger course completion, etc. It took about 4 emails back and forth to put together enough detail to understand what users were doing and what was expected but didn’t happen.

Here’s an example of a great test case related to a real (and recent) issue with one of our plugins:

Hi, I’m using the Uncanny LearnDash Toolkit Pro plugin with the Autocomplete Lessons & Topics module turned on. I have autocompletion enabled globally, but for the first topic of a course I have it disabled at the topic level. When I visit the topic as a user, I’m able to click forward to the next topic and the first is marked as completed. It shouldn’t be marked complete because of the topic-level override. Any idea what I’m doing wrong? Here are some screenshots so you can validate my settings.

That is a fantastically helpful ticket to us because we know exactly what the customer is using, we know how things are configured, we know the steps they’re taking and we know the expected vs. actual result. This kind of example makes it really easy for us to validate the issue in our test environment to assess if there is a problem in our plugin or if it’s a unique behaviour to their site. Be very descriptive, outline the steps someone could take to reproduce the issue, and include additional details like screenshots whenever it’s appropriate.

WordPress plugin support

Outline what you’ve done so far

Once again, the more we know the better. Using the ticket above as an example, it would absolutely help us to know if the user tested with different module settings or with the plugin disabled entirely to see if the results were different.

Let’s take an example with one of our plugins.  Perhaps the site admin wants LearnDash Group Leaders to see the admin bar, but for some reason it’s not showing up.  In our Hide Admin Bar Toolkit Module, they have the Group Leaders unchecked (so those users should see it).  This suggests another plugin is conflicting with the settings in the Toolkit.  Before reaching out to us, maybe the customer already disabled all plugins (except our Toolkit) and changed the theme temporarily to confirm the issue still happens. Knowing that would save everyone time, because that’s the very first thing we would suggest if we suspected a conflict.

That leads us to a related and very important recommendation.

Get a Staging site ready

With elearning sites in particular, testing updates and issues on a site that’s independent of your live site is critically important. Having a Staging site available for that purpose is a must, and if it can be used for resolving issues as well, all the better.

Sometimes we simply can’t trace a plugin issue through descriptions and screenshots alone. We do need access to see what’s going on and to test things. I can absolutely confirm that we do not want access to your site unless there’s no alternative, and if we need it, we don’t want to test things on your live site. If an issue seems like it’s going to need troubleshooting directly in your environment, it’s going to be easier and safer for everyone if that testing can be done on a clone of the live site rather than the real site. If you suspect the plugin vendor will need to see what’s going on in the environment or the conversation is heading in that direction, get a Staging site up and running.

Do some initial troubleshooting

If you’re new to WordPress this guidance is going to be hard to action, but as you get more experienced you’ll start to understand what’s likely to be causing certain errors and where to look to trace them.

If you see a white screen, a page in /wp-admin/ only partially loads, or you actually see a “500” error message, there’s likely a fatal PHP error on the site. Typically there’s going to be an associated message in the web server error log, so you’ll want to check there first for a “Fatal Error” and pass that on to the plugin developer. The WordPress debug tool can also provide really important clues about system-level errors.

If something on a site just looks wrong or unlike screenshots on a plugin developer’s website, or interactive elements on your site aren’t working properly, it’s likely a javascript or CSS conflict. Check the browser console (View > Developer > JavaScript Console in Chrome) for more information, and if you find any errors, they will be immensely helpful to the plugin developer.

Include one issue per ticket only

This one is really important when you want a quick resolution for your ticket. Our team has multiple developers, each of whom has different areas of expertise. We have 3 customer-facing staff handling support tickets and 4 developers behind the scenes providing assistance. Tickets that include several issues slow things down by an order of magnitude, because now we have to split tickets up behind the scenes, assign them to different developers and staff, then wait for an update on all of them before we can reply to the customer. After all, we don’t want to send pieces of updates and end up in situations where only part of the ticket ends up getting answered.

A few weeks ago we had a customer submit a 3-page PDF file outlining 5 completely unrelated issues they were having. None of the 5 had a simple answer, all required testing and validation, and we had to address all of them before we could properly reply (beyond sending an initial confirmation warning the user that it would take longer to investigate all 5 questions). Turnaround time would have been improved for the customer, and things would have been more efficient for us, to have received 5 separate tickets instead.

We want to help

When something goes wrong with a WordPress plugin, it’s absolutely a scary moment and you just want it fixed as quickly as possible. We as plugin developers want the same. By helping us to understand the problem, making it easy for us to test it ourselves and by giving us all relevant information, your tickets will be turned around faster and your issues resolved more quickly.

Give the tips above a try the next time you need to send in a support ticket and let us know in the comments if they helped!

How We Made LearnDash 75 Times Faster

Important: This article examines how we modified certain parts of LearnDash to improve performance on high volume/enterprise sites. LearnDash itself is not slow, but some parts of it are designed for convenience rather than performance. For the vast majority of LearnDash sites, the optimizations discussed below are unnecessary and could be dangerous. This article is intended for very large sites where scalability and performance are critical. 

LearnDash Performance TuningWe see a lot of projects that really push LearnDash to its limits, and for a sub-$200 WordPress plugin, those limits are surprisingly high. LearnDash is generally an efficient plugin that serves the vast majority of its customers very well, but every so often, an organization wants to see how well it can really perform at scale.

The typical LearnDash site we see might expect up to 15 simultaneous learners (even on sites with upwards of 1,000 users) and perhaps 200 LearnDash posts. We  support several, however, that have hundreds of simultaneous learners and thousands of LearnDash posts (courses, lessons, topics and quizzes). At that level, everything gets harder and keeping everything running smoothly requires tuning performance wherever we can.

What we observed on extremely large sites, especially after total courses crossed the 100 level, total quizzes exceeded 1,000 and we started going over the 100 simultaneous user mark, was that performance significantly deteriorated in 3 main areas: user profile pages in /wp-admin/, quiz listing pages, and quiz submissions. In some cases users and admins were even seeing 503 errors, which is catastrophic for any live LearnDash site, but especially ones with hundreds of people online at the same time.

In user profiles we found that database operations could often exceed 150 seconds of processing times and require 10s of thousands of SQL queries to render (perhaps 200 queries is typical on most pages). What we found was that the “Course Progress Details” section of the profile page was looping through all courses to retrieve records for the user and the courses for every course the user was enrolled in. It was pulling everything down on page load too, so even if an admin were just going in to change a password or something else unrelated to LearnDash, the site would be affected by severe load.

Loading all of this data does make things a lot more convenient for admins, and in most cases this section wouldn’t be an issue. But when loading tens of thousands of records on a site with lots of courses, it’s a problem. Fortunately, our developers were able to override this section completely with an alternative solution that combines queries and reduces loops when the admin drills down into that specific course. The approach means we only load data when it’s needed and only as much as is needed. We also removed the edit links to LearnDash posts from the profile page, which are generally rarely used, and we added some transients to speed things up further.

The net effect of these changes?

We took profile page load time for admins from 150 seconds to 2 seconds. 

The difference was night and day. It made profile pages usable again.

The list of quizzes inside LearnDash was another interesting performance challenge. With well over 1,000 quizzes (and thousands of lessons and topics) on a site, just listing the quizzes was a 120 second exercise that adversely affected learners on the site at the same time. Why so slow? Well, LearnDash adds filters to quizzes to make it easy to choose a course (or something else) and only see quizzes under it. But to populate that list of filters, it needs to look up all the associations between quizzes, courses, lessons and topics—which takes a long time on a big site.

This was a case where we really gave up convenience for performance. We didn’t care about only showing objects with quizzes in the filters. So instead we just loaded all courses, then on course selection in a filter we showed all lessons and topics. If the administrator filtered and there were quizzes, great. And if not, we just showed a message that there were no quizzes. That change took loading the quiz listing from 120 seconds to 2 seconds. It was well worth the slight inconvenience.

LearnDash Quiz Performance

Next we looked at quiz submission performance. On sites with a lot of content, saving quiz answers that include essay questions can be extremely slow—in the case of a site with 120,000 rows in the wp_posts table, it was taking 35 seconds to save quizzes with essay questions. Obviously that was trying learner patience and slowing down the site. To address this one we took a shortcut, and instead of looking for a matching post title or name to avoid duplicates when saving an essay answer, we skipped the check and just forced a unique post name.

That new approach took quiz saving time from 35 seconds to 3 seconds.

As you can see from our results, it is possible to significantly increase LearnDash performance on big sites. What’s especially nice is that LearnDash allows us to make 2 out of the 3 overrides above without changes to LearnDash code (and we’re hoping the third can be handled outside of LearnDash in a future LearnDash release if additional filters are added). This means it’s easy to bundle our performance improvements into a portable plugin and the optimizations will survive updates.

Another factor that did help us really push LearnDash performance on these sites was assistance from Pressidium, who are hosting the sites. They went out of their way to help us look at opportunities for performance enhancements and they applied some database changes to their environment to improve performance further.

Where to Find LearnDash Training, Tutorials and Documentation

Building a robust and polished LearnDash site can be quite difficult. We’ve been doing it for over 4 years now and we’re still discovering new and better ways to build sites. We definitely have an edge with a team of skilled developers and LearnDash experts at our disposal, but we’re all too aware of some of the challenges faced by for new WordPress users and even experienced developers.

This article came about because we still get countless inquiries from people who recognize that LearnDash is a powerful tool that can probably help them—but that’s really as much as they know. They don’t know how to get started and don’t know where to turn to find more information, guidance, and support. We unfortunately find, time and again, that people simply aren’t aware of some of the great LearnDash resources (including tutorials, screencasts and documentation) that are available. We’re hoping that this article saves those users some confusion and frustration.

Start with the Source

The LearnDash Support Site is an invaluable resource that not all LearnDash users seem to know about. If you haven’t bought a license yet, you might not even know it exists! It’s easily as valuable as the plugin itself though. There are countless screencasts, Knowledge Base articles, FAQs, and more. Perhaps the most valuable tools are the forums (which are very active and full of useful information to solve common LearnDash problems and share best practices) and access to the LearnDash support team, who we routinely see go out of their way to help LearnDash customers.

Go to the Experts

Outside of the LearnDash support site there are still lots of great resources. On YouTube there are hundreds of videos from many different authors (including ours; our popular How to Make a LearnDash Site video has helped thousands of LearnDash users). Agencies and developers that work with LearnDash often have great tutorials and articles covering best practices (the LearnDash blog, this blog, WisdmLabs, and others are examples), though it can sometimes be difficult to find the right articles among so much information. Google can be your friend to narrow things down to specific subjects.

The LearnDash Facebook group is very active and has hundreds of members ready to jump in and provide advice on everything from the basics to complex code solutions. You’ll even find some of the Uncanny Owl team on there!

There is also our introductory LearnDash course for our Uncanny LP hosted LearnDash platform. Although it is targeted at a modified WordPress platform, it does still cover all of the WordPress and LearnDash basics someone would need to get started—it just demonstrates everything with a streamlined interface that could be confusing if you’re not using LP. It is free and anyone is welcome to use it, or you can skip the course and jump right into the hours of useful LearnDash useful LearnDash screencasts.

LearnDash can seem overwhelming at first, but there really are many helpful resources available and a large community of users eager to help.

If you have other sources of useful LearnDash training and documentation, add them to the comments below!

How to Choose a LearnDash Developer

As LearnDash developers with some visibility in the WordPress LMS community, we get a lot of requests to fix bad projects. It’s so easy for things to go wrong, and selecting the wrong partner can often mean the project is doomed before you even start. In this post we’ll explore the most important things to consider when choosing a developer for any WordPress elearning project. Our expertise is in LearnDash, but all of this applies equally to LifterLMS, Sensei, and any other WordPress LMS plugin that you’re building your platform around.

This post isn’t about selling our services; we’re already at capacity and have unfortunately had to stop accepting new clients several times recently. What we want to do with this blog post is raise awareness so that when you are looking for a partner to help build your LearnDash site you better understand how to choose an organization that is competent and will be able to deliver a robust platform that meets your needs.

If you’re starting out on your first LearnDash development project, here are some things to consider as you look for a partner:

Start with a conversation. We really find that emails don’t work well enough to ensure all parties are on the same page and to ask questions easily. It’s great if you can come to that conversation with clear goals and questions. The vendor should have questions too. Relationships are absolutely critical to successful projects and this is where they start. Take notes and be thorough. If you’re comparing vendors, make sure you have a consistent way to assess them and document everything immediately after the conversation. Also be prepared for several conversations; it’s rare that initial discovery and planning can be completed in a single session, unless it’s a very small project.

learndash discussion

Ask if you can see some of the company’s other projects. Do keep in mind that for LearnDash projects most of the development work tends to be behind registration or a paywall, so the access developers can provide is limited. Again, this is where a call (or preferably web conference) can be very helpful, as on a call the developers can actually sign into sites and show how things are set up or created. Experienced LearnDash experts should have easy access to a variety of representative samples. Ask for some walkthroughs and get more information about what specifically the developers did. Give consideration to what works and what doesn’t, and how similar previous projects might be to your own. Experience is extremely important when setting up intuitive, effective elearning platforms with WordPress.

learndash testimonialsCheck out community feedback. This can be really hard to find in the LearnDash space, but it’s still important to make an effort and solicit experiences about working with the vendor. Maybe there’s feedback on social media, plugin reviews for things they may have developed, the LearnDash support forums, even reaching out to previous customers. Also look for negative feedback, which can often be more telling than positive comments.

Don’t just look locally. There are very few WordPress agencies and developers that have a significant amount of LearnDash experience. We’ve seen a lot of projects where businesses chose someone they know who’s done other work for them (LearnDash is just one plugin, right?) but couldn’t transition to considerations like the signed-in experience, student workflow, making things work together, etc. To get the best partner, expand your search range, potentially even to other countries. We’re in Toronto but we have many clients in Australia; it’s not as hard as you might think to make projects like that work.

Get to know who you’ll be working with. Without question, the #1 reason we’ve taken over several projects from experienced LearnDash developers hasn’t been bad code quality or poor implementation—it’s been a communication breakdown. Communication issues are painfully common with these projects and site owners come to us because they have a site they don’t know how to use, isn’t what they expected or they’re tired of saying the same thing over and over.  Whoever is setting up your site is someone you’ll be working with for over at least several weeks, perhaps even several years. There has to be a rapport. There must be trust. And it has to be really easy to communicate and make sure everyone is always working towards the same goals and scope. You don’t want to be talking to 5 different people and for discussions to only happen by email with week-long gaps between them.

Try to assess technical competence and workflow. While communication issues abound, there are still a lot of developers out there that simply bite off more than they can handle with LearnDash and don’t really know what they’re doing. They might be great people that really want to help, but that doesn’t mean they should be building LearnDash sites. Just last month we took on a site where the developers had made changes to LearnDash core and even WordPress core—and that should never, ever happen.  The client, of course, wondered if it was normal for everything to break and have to be fixed on updates (it’s not). So ask LearnDash partners how they work and look out for red flags. How do they implement changes? How do they test updates? How do they work collaboratively? Who’s responsible for testing and validation? How does a project actually come together? If they have public plugins, what are the reviews like and what issues are people having? We have also seen individuals take on projects that were just too big for one person and then, when they’re overwhelmed, they’ve walked away. Try to get a sense of whether or not the developer or development team has the right skill set and/or the right people in place to handle everything that’s needed.

Ask about training and maintenance. Building a LearnDash site means a lot more than setting up a site and installing some random plugins—yet we see that happen a lot. Your goal also shouldn’t just be to have a site that seems functional at the end; it should be to have a LearnDash site that you understand how to use and leverage to improve your business. When we’re investigating a new site, we almost always have a conversation that goes like this: “Do you know why this is set up this way?” “No.” “Do you have any documentation that might explain it?” “No.” “Is there any way you could find out?” “No.” As a site owner, we understand how scary it can be for you when we ask those questions and you realize you don’t really understand your site. From the beginning you need to make every effort to ensure you’re working with a partner that won’t leave you in that situation. Training and communication throughout a project are absolutely essential. We average creating maybe 4 screencasts per project so that clients always have a point of reference for how things work and why. Find out what your partner’s process is to make sure you’ll be left in a place where you’re comfortable. Also confirm what’s typically required following projects in terms of maintenance and who will be taking care of that. For most projects we are able to hand things off in a way that clients can safely make updates themselves and we’re only needed for answering questions on an ongoing basis—not to keep things up and running.

Don’t be driven just by price. You will inevitably get what you pay for. We’ve taken on a few projects that we scoped out months or even years previously; the business decided to go with a different vendor that was a lot less expensive, and then they came back to us to fix them, often at a higher price than they would have paid if we’d just done the project originally. Budget is a huge consideration, of course, but it should be carefully balanced against other factors like the competence of the developer, your relationship with them, the developer’s experience in similar projects, etc.

Understand exactly what will happen during the project. If you start a project, then leave it in the developer’s hands for 2 months and suddenly get an email at the end saying it’s all done, you’re going to end up with a bad site. Take some time to understand what’s going to happen during the project and how collaboration will work. What do you need to provide? What are your responsibilities and what are the developer’s? What are the milestones? To meet the timelines, how do reviews work and how quickly do things need to be turned around from both parties? Are there any dependencies or bigger risks that everyone should be aware of? How will you and the developers keep each other updated and make sure things are progressing as expected?

The tips above should go a long way in helping you select and retain a vendor that’s the right fit for your LearnDash project. Sometimes, however, it’s still not enough, and due to unforeseen circumstances projects can still go off track. While this is just a quick list, here are some things you should be doing during the project to encourage positive outcomes:

Be involved. Some of our worst projects (and yes, we’ve had a few that disappointed both parties) were when clients just dropped communication. They got too busy or had other priorities, or just stopped caring about the site. We’ve had projects delayed 6-12 months because of client delays, and when that happens it inevitably leads to bad outcomes. Objectives get lost, people stop caring as much, the results just aren’t there. The best projects are when everyone is on the same page and working collaboratively at the same time. We’re adding features and testing while the client is adding content and providing feedback. We’re having discussions to address scope creep or new problems. Being active and engaged is one of the best ways to see good results.

Test continuously. Very recently we took over a project where testing on the site by the client didn’t begin until the day before launch. The site was extremely complex and, of course, everything was broken. That’s when the developer realized they were in over their heads and the client realized they were in an unimaginable amount of trouble. It’s an avoidable situation though. With WordPress LMS sites it’s not like everything is suddenly ready one day; pieces will be finished throughout the project that can be tested independently. Be involved and testing often not only helps identify issues early but it’s a chance to understand your site better and work collaboratively.

Maintain a good relationship. Yes, even if your developer is doing a terrible job and you’re miserable, try not to throw the entire relationship away if you’re in the middle of development. We’ve seen angry developers lock companies out of their sites. Like it or not, and the legal side can be messy when you’re working with partners in other states or countries, your developer can make things very difficult for you if they host and/or have admin access to your WordPress site. If you need to sever a relationship with a WordPress developer try to gain control of the site before things sour too much.

The goal of your LearnDash development project is to always end up with win/win situations for you and your developer. They are possible, and by following some of the guidance in this article we hope you’re able to partner with a great LearnDash development team for your WordPress LMS project.

To Quiz or Not to Quiz?

Having gone through years of schooling, most of us are used to taking and passing tests during or at the end of our learning process. Some of these tests are major milestones and others may determine whether our learning is deemed ‘completed’ or ‘successful’. Some teachers may find constructing and administering tests more straight forward than developing other types of assessment. Often these tests get created at the end of a course development process, driven by the subject matter rather than by expected performance outcomes.

For workplace learning or soft skills training in which application is more important than memorizing facts, tests may not be the most appropriate assessment method. Most test questions are not designed to allow students to engage in critical thinking and reflection or a deeper analysis of the learning material.

There are alternatives to tests, such as writing assignments, collaborative projects, and case studies, that can avoid the problems often associated with tests and quizzes. The key is to design authentic assessments that simulate real-life situations so students can actually learn from the process (Palloff & Pratt, 2013)1. Although group projects can be harder to manage online, they allow your learners to create and be part of a community of practice. After all, if the application of skills doesn’t occur in isolation, why should learning of such skills take place in a vacuum?

There are, of course, benefits to tests. Here are some of the occasions when tests are not only appropriate but good strategies to enhance learning:

  • Use pre-tests to introduce new material: A quiz, when used as a pre-test, can provide your learners with a preview of what they are about to learn. The intention of the test is to get your learners to realize what they don’t know and make them want to know more. These questions can also help students focus on the most important knowledge and skills addressed by your course.
  • Use post-tests to reinforce main points and check understanding: After a lesson is concluded, consider using a self-assessment to review the material covered. A well designed post-test provides learners with personalized feedback tied to what they just completed. It helps them self-evaluate whether they have a good grasp of the material. These frequent, low-stakes assessments can also help students gain proficiency before they attempt the final assessment2.
  • Use formal tests to validate competency: At a logical break point, use a formal test to help learners synthesize their learning. Align test questions to the learning objectives. As much as possible, include application questions (e.g., case scenarios) in this type of tests to help learners apply what they learned in simulated situations.

To quiz or not to quiz? Perhaps there isn’t a straight-forward answer, but ask yourself what the intended learning outcome is before you make it the primary choice for assessment.

Palloff, R. M., & Pratt, K. (2013). Lessons from the virtual classroom: The realities of online teaching (2nd ed.). San Francisco: Jossey-Bass.

Weise, M. R., & Christensen, C. M. (2014). Hired education: Mastery, modularization, and the workforce revolution. Redwood City, CA: Clayton Christensen Institute.

Introducing the Uncanny LearnDash Toolkit Pro Modules

Earlier this year we released our first public plugin to the WordPress Repository. The Uncanny LearnDash Toolkit has developed a huge following since its release, with over 1,000 active installs and over 4,000 downloads, and we wanted to take that foundation and add a number of new capabilities that would help LearnDash site owners really take their learner experience to the next level.

The Pro set of modules for the Uncanny LearnDash Toolkit is our first paid plugin and represents the culmination of hundreds of hours of internal development time. The new modules are considerably more complex than what’s in the current plugin, but they’re also very powerful and fundamentally change what’s possible with LearnDash sites.

Here are the modules included in the initial release of the Pro plugin (usage instructions are left to our Knowledge Base articles in the links because of module complexity):

Autocomplete Lessons and Topics: As simple as it sounds, this module marks lessons and topics as completed when the page is visited so learners no longer have to click Mark Complete on lessons and topics.

Simple Course Timer: Adds time tracking to LearnDash courses. Both total course time (across course, lesson, topic and quiz post types) and course completion time are recorded as learners complete learning activities. Results are added to LearnDash reports and can be displayed to users via shortcodes.

LearnDash Group Expiration: Expire course access for LearnDash Groups by calendar date. On a specific date, all courses can be removed from a LearnDash Group (revoking access for associated users), making it easier to sell courses to organizations and remove access automatically.

Enhanced Course Grid: This module provides an alternative way to display courses in a grid-based system that’s particularly useful to signed-in users. It’s extremely flexible.

Course Dashboard: We took the basics of the ld_profile shortcode but modified the design (and content) to fit seamlessly into typical landing pages for learners.

Learner Transcript: This report shortcode generates a printable view of user progress across all LearnDash courses. It’s a better way for learners to share their accomplishments offline and with other parties.

Duplicate Pages and Posts: A simple module that clones LearnDash post types, but with proper support for quizzes and quiz questions. With this module you can skip the export/import quiz steps normally recommended.

Days Until Course Expiry: Show learners the number of days until access expires (rather than the calendar date available with LearnDash).

Drip Lessons by LearnDash Group: Set specific drip dates for every LearnDash group instead of every group being bound to the same dates.

LearnDash Table Colors: Adds a simple way to restyle LearnDash course, lesson, quiz and dashboard tables by changing the colors of the header background and text.

LearnDash Group Registration: Adds a front-end registration function for adding users to both WordPress and LearnDash Groups at the same time. It even supports users switching groups or adding additional groups to a user from the front end. Gravity Forms or Theme My Login are recommended for this module but not required.

The Pro plugin requires PHP 5.3 or higher, LearnDash 2.1 or higher, and the Uncanny LearnDash Toolkit version 1.3 or higher. These 3 things are really important, so please make sure your site is updated before you purchase and install the Pro modules!

Some of the new modules are reasonably complex, and it’s very important that you read the Knowledge Base articles and watch the screencasts before you start using the plugin. If you do run into any problems or questions, send us a note!

We hope you like the new Pro modules and that they help to improve your LearnDash sites!

Uncanny LearnDash Toolkit Pro

Who Reads Learning Outcomes?

If you do a search online, you’ll find plenty of resources on how to write good learning outcomes, and how not to confuse learning outcomes with learning objectives. “Outcomes” or “objectives”, the reality is your learners seldom pay attention to them. They skip this screen. They fast forward. So for whom are learning outcomes really written?

Don’t get me wrong. Learning outcomes are written for the learners. But they seem to be there as a reminder to the instructor and instructional designer of what the focus of the training should be, like how PowerPoint is often misused as the presenter’s teleprompter.

So should you skip learning outcomes all together? Not at all. There are ways you can state learning outcomes that are informative and actually get your learners’ attention. Here are some strategies.

1. Pose learning outcomes as questions

Rather than telling your learners what they should be able to do at the end of the lesson, consider asking them a series of open-ended questions for which they don’t yet have answers until they complete the lesson. These questions are intended to raise the learners’ curiosity and get them to want to learn more.

2. Use a pre-test to frame learning outcomes

An alternative to the first strategy is using a pre-test. The test should be short and fun. In fact, it should not look like a test. As with the first strategy, the intention of the test is to get your learners to realize what they don’t know from the cues to the key points of your lesson.

WordPress Tip: If you’re not grading pre-tests to support Level 2 evaluation, LearnDash and other LMS quizzes can be heavy for this type of pre-test. Consider an H5P element or simple text questions instead.

3. Use a case scenario to model learning outcomes

Learning outcomes are meant to describe desired behaviour. So, why not present a case scenario that models the intended outcomes? The learners get to see what they will be able to do at the end of the lesson. Have them buy into what they can achieve will increase their motivation to learn.

4. Use a short introductory video to tell a story

Contrary to the previous strategy, a story that makes personal connections will warm up the learner. On the other hand, a story that describes a problem causes tension; it will make the learner want to resolve it. Either way, your introduction will engage the learner and make the content more relatable.

Learning outcomes don’t have to be boring. If you take care of the presentation of your learning outcomes, your learners will be less inclined to skip them.

7 Principles of Good Feedback in eLearning

elearning-feedbackEvery  teacher knows that it’s important to provide students with regular feedback during their learning process. Without feedback, your learners simply don’t know how well they are doing. In self-paced online learning, how do you gauge the learners’ progress when there is no instructor to provide feedback and guide their learning?

Nicol and Macfarlane‐Dick (2006)1 identified seven principles of good feedback practice. In this post, we’ll discuss how you can incorporate feedback—in particular, how to apply these principles—in self-paced online learning.

  1. Good feedback helps clarify what good performance is

    What’s been done: An approach that has proved particularly effective in clarifying performance goals and standards is to model exemplary performance. Without concrete, worked examples, concepts are just abstract ideas. In self-paced online learning, this can be achieved with case studies in which learners can identify good performance in the presented scenario.
    What you can do: When designing a case scenario, consider breaking it into multiple parts. After presenting a case, ask the learner what they would do in that scenario—this could be done with a multiple-choice question with possible reactions. Reveal the answer only after the learner has given it some thought. Your answer will be more meaningful if they interact with the material first.
    WordPress Tips: Quiz tools in LearnDash and other LMS plugins can be disruptive to learning for short reflective assessments; try an H5P module instead, which can be embedded directly into the lesson page.

  1. Good feedback facilitates the development of self-reflection in learning

    What’s been done: Provide opportunities for learners to ask “where am I now?” In self-paced online learning, this is especially important if your course is broken down into many lessons, and the learner has the option to take them in any order.
    What you can do: At the end of each lesson, consider providing the learner with a concept map showing them where they are in the course. If possible, tie it with the lessons that the learner has completed to show connections. This gives them an opportunity to do a self-check before they move on to a new lesson.

  1. Good feedback delivers high quality information to students about their learning

    What’s been done: Good feedback is personalized, specific to the individual learners. This can be done with a self-assessment, which may include multiple-choice, true/false, or short-answer questions with feedback tied to the lesson or topic that the learner just completed. This helps the learner self-evaluate whether they have a good grasp of the material.
    What you can do: Consider including customized feedback that helps the learner adjust their learning. For example, you may suggest that they review the lesson (or certain sections of it) if they answer most of the self-assessment questions wrong. You may provide more feedback if a key question that is directly linked to a performance goal is answered incorrectly.
    WordPress Tips: Conditional feedback can be difficult in WordPress, but most quiz tools support feedback or graduation text that can be used to provide insight and recommendations based on learner answers (or use something that supports conditional feedback, like Gravity Forms). For personalized feedback, we like using the shortcode on LearnDash platforms to address the learner by name wherever possible.

  1. Good feedback encourages teacher and peer dialogue around learning

    What’s been done: One way of increasing the likelihood that your feedback will be taken in by the learners is to frame it more as dialogue rather than as instruction. This can be done with a few follow-up questions at the end of a lesson that ask the learner how they might apply what they learned in a context that’s directly relevant to them.
    What you can do: In self-paced online learning, if there is a blog or forum associated with your course, consider encouraging the learner to discuss your follow-up questions with their peers. This can be very effective when the feedback is highly contextual. Using feedback to generate discussions also encourages communities of practice in which learners who share common interests can learn from and support one another.
    WordPress Tips: bbPress is a great way to incorporate a simple forum and you can link to specific threads inside LearnDash lessons and topics. Be aware that taking users to a forum removes them from the course context, so make sure it’s easy for users to navigate back to where they were (like with the Resume button in our Toolkit, or easy access to a dashboard page).

  1. Good feedback increases students’ motivation to learn

    What’s been done: As mentioned above, feedback can be embedded in a series of “check your understanding” review questions. The bite-size evaluation allows your learners to grasp concepts in smaller, manageable chunks, leveraging each step of their learning as building blocks.
    What you can do: “Drop-out” caused by low motivation is often considered the biggest challenge in online learning. Bite-size learning with self-assessment allows your learner to celebrate their progress. Success breeds success—the gradual approach helps to build up the learner’s confidence and increase their motivation to learn. You may also consider using badges to reward the learner’s milestone achievements.
    WordPress Tips: For next-level automated engagement, one intervention we really like is hooking LearnDash activities into Active Campaign, a powerful but inexpensive Marketing Automation tool. It’s not just for marketing—it’s a very effective way of keeping learners engaged by sending communications based on their learning activities. (At the time of writing, our Active Campaign integration for LearnDash isn’t available to the public but can be added to client sites.)

  1. Good feedback provides opportunities to close the gap between current and desired performance

    What’s been done: The end goal of providing feedback is to help learners achieve mastery and improve performance. Self-assessment at the end of a lesson can mimic the same ‘task-feedback-performance’ cycle.
    What you can do: Your feedback should help the learner recognize the next steps in learning and how to take them. It can also show how the gap between their current and desired performance is shortened each step of the way.

  1. Good feedback provides information to teachers that can be used to help shape teaching

    What’s been done: Self-assessment is often not evaluated. However, there is significant learning data that can be extracted from these assessments to guide the student’s learning path. Their learning becomes more relevant and meaningful which, in turn, will further increase their motivation to learn.
    What you can do: Take advantage of the user progress reports that your LMS generates to better understand where your learners are. The data can help you assess the average performance of the class, and identify who may need more attention. It can also help you make improvements to your course that will benefit future learners.
    WordPress Tips: We know that progress over time can be difficult to track with WordPress LMS plugins. Running reports at defined periods and then comparing them can help; report customization is also an option.

In self-paced online learning, students are already assessing their own work and generating their own feedback. Well-designed feedback creates individualized learning experience that will result in more satisfied learners.

Nicol, D. J., & Macfarlane-Dick, D. (2006). Formative assessment and self‐regulated learning: A model and seven principles of good feedback practice. Studies in Higher Education, 31(2), 199-218.