Skip to content
GPLWP Guides

How to automate LMS course workflows in WordPress

Membership & LMS Time About 30–60 minutes for one workflow 6 steps Updated 12 Oct 2026

MEMBERSHIP & LMS
The short answer

You can automate simple course access, prerequisites, content release and certificates inside many WordPress LMS plugins. For workflows that connect enrolment, quizzes, completion, memberships, email or WooCommerce, use LMS hooks and custom code or an automation plugin.

The route
  1. 01Map the workflow first
  2. 02Use the LMS settings first
  3. 03Connect enrolment to payment
  4. 04Build the manual route
  5. 05Test every path
  6. 06Use a workflow builder

What you need

  • A WordPress LMS such as LearnDash, Tutor LMS or LifterLMS
  • Administrator access to WordPress
  • A defined trigger and follow-up action
  • WooCommerce or a membership plugin if access is sold

Map the workflow first

Write the workflow as trigger, condition and action. For example: when a learner completes Course A, check that the final quiz is passed, then enrol the learner in Course B, add a membership level and send a completion email.

Decide whether the workflow should run once or every time the event occurs. Also decide what should happen when a payment is refunded, a user is removed from a course or a quiz is retaken.

Use the LMS settings first

Check your LMS before adding automation. Course prerequisites, sequential lessons, scheduled content, enrolment expiry and certificates are often built in. Tutor LMS, for example, supports prerequisite content, scheduled release and content released after a number of days from enrolment. Its certificate feature can display a downloadable certificate after course completion, when the required add-on is enabled.

Keep these rules inside the LMS where possible. A separate workflow should handle the parts the LMS does not own, such as adding a user to a CRM list or granting access to another plugin.

Connect enrolment to payment

If learners buy access, connect the LMS to your payment system and make one system the source of truth. With WooCommerce, confirm which order status grants access and whether the LMS creates or links the correct course product. Tutor LMS documents an option to automatically complete WooCommerce course orders, and only one e-commerce engine can operate at a time.

Test a successful payment, a failed payment, a refund and a manually completed order. A common Friday problem is that the order is paid but the learner is not enrolled because the product is not linked to the course or the order never reaches the status that triggers enrolment.

Build the manual route

For a small site, use the LMS's native settings and write a small custom plugin or site-specific code for one-off actions. WordPress developers can attach code to LMS events instead of editing the LMS files. LearnDash documents learndash_course_completed, which fires after a course is marked complete and provides course-completion data; its examples include enrolling the learner in another course.

This route is fine when you have one LMS, one or two rules and someone who can maintain PHP. It becomes awkward when you need different LMS integrations, quiz conditions, retries, email logging, membership changes or a visual audit of which step ran. Hook arguments and event timing also vary between LMS plugins, so do not copy a LearnDash hook into a Tutor LMS site.

Test every path

Use a test account and run the complete learner journey from a clean state. Check enrolment, lesson completion, quiz pass and fail results, course completion, certificate availability, email delivery and the final membership or CRM change.

Also test repeated events. Make sure a learner does not receive two certificates, two welcome emails or duplicate access because a completion event fired again. If an action depends on a payment, test the order status and the linked product rather than only clicking an enrol button in the admin area.

Use a workflow builder

The fast way is to use an automation plugin that already understands your LMS. AutomatorWP provides LMS triggers and actions for events such as course enrolment, lesson completion, quiz results and course completion, with actions such as enrolling a user in a course. Its LearnDash and Tutor LMS integrations document these event types separately.

Create an automation, choose the learner event, add any course or score condition, then select the action. AutomatorWP is a sensible choice for cross-plugin workflows because it can connect LMS events with memberships, email, WooCommerce and other WordPress plugins. Start with one action, test it with a new account, then add the rest of the workflow.

The fast route

Let AutomatorWP do it

Trigger-and-action workflows for course enrollment, completion, quizzes, and certificates; choose it for cross-plugin LMS automation.

Get AutomatorWP

Sources

  1. docs.themeum.com /tutor-lms/course-builder/course-creation/additional-setting…
  2. docs.themeum.com /tutor-lms/third-party-integration/woocommerce/?utm_source=o…
  3. developers.learndash.com /hook/learndash_course_completed/?utm_source=openai
  4. automatorwp.com /add-ons/tutor/?utm_source=openai
  5. docs.themeum.com /tutor-lms/tutor-lms-certificate-builder/add-certificate-to-…

Questions

Can WordPress automate LMS course enrolment without a plugin?
Yes, but only if your LMS and payment system already provide the required integration or you write custom code. Native LMS settings can handle prerequisites, content release and some certificates. Cross-plugin actions such as enrolling a learner after a WooCommerce purchase usually need an integration, a custom plugin or an automation plugin. The code must use hooks provided by your specific LMS.
What should trigger a course completion workflow?
Use the LMS's confirmed course-completion event, not a page view or a button click. A completion trigger should run only after the LMS has recorded the learner as complete. If a certificate or membership depends on a quiz score, add that condition too. LearnDash documents a course-completion action, while other LMS plugins use different event names and data.
Why does a paid learner sometimes fail to receive course access?
Paid learners usually miss access because the payment product is not linked to the course, the order has not reached the access-granting status, or two e-commerce engines are configured at once. Check the product-course link, the order status and the LMS monetisation settings. In Tutor LMS, the documented WooCommerce setup includes an option to automatically complete course orders and requires WooCommerce to be the selected engine.
Should certificates be handled by the LMS or an automation plugin?
Use the LMS for a certificate that is simply awarded when its course is completed. Use an automation plugin when issuing the certificate also needs to update a membership, send data elsewhere, notify a manager or depend on several conditions. For example, Tutor LMS can assign a certificate template to a course and make the certificate available after completion when its certificate features are enabled.