tr Skip to content

Connect WordPress and LearnDash

LearnDash runs inside WordPress, but its courses and your site's users and roles are managed in different places. FlowMattic links them: register and you are enrolled, finish a course and you get a role, lose a membership role and course access goes too. It suits course sellers, membership sites and companies training staff on their own WordPress install.

40 triggers 77 actions 6 example workflows 13 ready-made templates Unlimited runs

Try a pairing

When this happens in WordPress32 triggers

Do this in LearnDash6 actions

1. TriggerNew User
2. ActionEnroll Into Course

When WordPress fires New User, FlowMattic runs Enroll Into Course in LearnDash with the data from that event.

You build this in the FlowMattic workflow builder on your own site. See the setup steps

WordPress and LearnDash workflows you can build

Each one uses only triggers and actions the two integrations ship today, plus FlowMattic's own tools. Where the library has a ready-made template, import it instead of building from scratch.

WordPress app icon LearnDash app icon

Enrol every new user in a free starter course

Anyone who registers on the site starts with an introductory course, so the first login has something to do and your onboarding lessons reach everyone.

New UserEnroll Into Course

WordPress app icon LearnDash app icon

Give graduates a new role when they finish a course

Completing the foundation course adds a Graduate role, which can open a members-only forum, a download page or advanced content that checks for that role.

Course CompletedFilterAdd Role to User

WordPress app icon LearnDash app icon

Remove course access when a membership role is removed

When a paid membership lapses and its role is taken away, the learner loses access to the courses that came with it. A Filter checks which role was removed.

User Role RemovedFilterRemove From Course

WordPress app icon LearnDash app icon

Put staff into LearnDash groups by department

When the Department field on a user's profile is set, a Router adds them to the matching LearnDash group, so each team leader sees only their own people.

User Profile Field UpdatedRouterAdd to Group

WordPress app icon LearnDash app icon

Save the latest quiz score on the user's profile

Writing the score into user meta lets a profile page, a directory plugin or another workflow read it without opening LearnDash reports.

Quiz CompletedUpdate User Meta

WordPress app icon LearnDash app icon

Enrol all existing members when a new course launches

Run once on the launch date: fetch every user with your member role, loop over them and enrol each one, instead of adding hundreds of people by hand.

ScheduleGet All Users by RoleIteratorEnroll Into Course

Set up: a starter course for new users

When you are done, each person who registers on your site is enrolled in the course you choose.

  1. Pick the course

    Decide which LearnDash course every new user should start with and check that it is published.

  2. Start from New User

    Create a workflow with the WordPress New User trigger and register a test account so FlowMattic captures the user ID.

  3. Add Enroll Into Course

    Add a LearnDash step with Enroll Into Course, map the user ID from the trigger and choose the course.

  4. Test and switch on

    Run the step, log in as the test user to see the course in their profile, then switch the workflow on.

Enrol every new user in a free starter course
  1. WordPress app icon 1. Trigger in WordPress New User
  2. LearnDash app icon 2. Action in LearnDash Enroll Into Course

    Fields mapped from the earlier steps (a typical setup)

    From WordPressTo LearnDash
    User IDUser to enrol
    Starter courseCourse
Built on the FlowMattic canvas. Test each step with real data, then switch the workflow on.

Triggers and actions in this pair

A trigger starts a workflow. An action is something FlowMattic does in the app as a step.

Good to know

  • Both apps act on the same WordPress user, so map the user ID from the trigger into each LearnDash action.
  • User Role Removed and User Role Added fire for every role, including ones other plugins change. Filter on the role name before acting.
  • New User fires for every registration, including accounts created by shop checkouts or other plugins. Add a Filter on the role if only some users should be enrolled.
  • Course Completed fires for every course. When only one course should grant a role, filter on that course's title or ID.
WordPress app icon

WordPress

Integration page

Triggers (32)

  • New UserTriggers when a new user is registered
  • New PostTriggers when a new post is published
  • New PageTriggers when a new page is published
  • New MediaTriggers when a new media is uploaded
  • New CommentTriggers when a new comment is added
  • Comment ApprovedTriggers when a comment is approved
  • Update PostTriggers when a published post is updated
  • Update PageTriggers when a published page is updated
  • User LoginTriggers when an user logs into the site
  • User Visits a Page/PostTriggers when an user visit page, post or any post type singular page
  • User Deletes a PostTriggers when an user delete post of any post type
  • Post Meta UpdatedTriggers when post meta is updated
  • Post Meta Field UpdatedTriggers when post meta specific field is updated
  • User Profile UpdatedTriggers when user profile is updated
  • User Profile Field UpdatedTriggers when user profile specific field is updated
  • User Resets PasswordTriggers when user resets the password
  • User DeletedTriggers when user is deleted from the database
  • Category CreatedTriggers when a new category is created
  • Tag CreatedTriggers when a new tag is created
  • Term CreatedTriggers when a new term is created
  • User Role AddedTriggers when a new role is added to user
  • User Role RemovedTriggers when a role is removed from user
  • User Role ChangedTriggers when user role is changed
  • User Role Changed From Specific to DefinedTriggers when user role is changed from specific role to defined role
  • GDPR Export Data Request ConfirmedTriggers when user confirms request to export their personal data
  • GDPR Erase Data Request ConfirmedTriggers when user confirms request to erase their personal data
  • Plugin ActivatedTriggers when a plugin is activated
  • Plugin DeactivatedTriggers when a plugin is deactivated
  • Plugin UpdatedTriggers once for each plugin that is updated
  • Plugin DeletedTriggers when a plugin is deleted
  • Theme SwitchedTriggers when the active theme is changed
  • WordPress Core UpdatedTriggers when WordPress itself is updated

Actions (71)

  • New UserCreate a new user
  • Update UserUpdate an existing user details
  • Update User MetaUpdate User Metadata
  • Add Role to UserAdd role to existing user roles of an user
  • Change User RoleChange user role of an existing user and set new role
  • Remove User RoleRemove user role of an existing user
  • Delete UserDelete user account from site
  • New MediaCreate a new media
  • Rename MediaRename media title in media library
  • Delete MediaDelete media by ID from the media library
  • Search Media by TitleSearch media by title in media library
  • New PostCreate a new post
  • Update PostUpdate existing post of any post type with custom fields
  • Get User by IDGet an user profile by ID
  • Get User by EmailGet an user profile by Email
  • Create CategoryCreate a new category
  • Create TagCreate a new post tag
  • Create RoleCreate a new user role, if not exists
  • New CommentCreate a new comment on post
  • Get Post MetadataRetrieve all or custom metadata from any post
  • Get User MetadataRetrieve all or custom metadata from any user
  • Get Posts by Post TypeRetrieve all posts of specific post type
  • Get Post TaxonomiesRetrieve all taxonomies of a post
  • Get Post Taxonomy TermsRetrieves the terms of the taxonomy that are attached to the post
  • Get Post by IDRetrieve the post details by ID
  • Get Posts by MetadataRetrieve all posts of specific post type by metadata or custom fields
  • Get Taxonomy by NameRetrieve the taxonomy details by name
  • Get All Users by RoleRetrieve all users by user role
  • Add Tag to PostAdd a tag to the post
  • Remove Tag from PostRemove a tag from post
  • Add Category to PostAdd a category to post
  • Remove Category from PostRemove a category from post
  • Check Plugin ActiveCheck if a plugin is active
  • Activate PluginActivate a plugin if not already active
  • Update CategoryUpdate an existing category details
  • Update TagUpdate an existing tag details
  • Update TermUpdate an existing term details
  • GDPR Request Export Personal DataCreate a request to export user personal data (sends confirmation email)
  • GDPR Request Erase Personal DataCreate a request to erase user personal data (sends confirmation email)
  • GDPR Execute Export Personal DataExecute export of personal data using request ID from trigger
  • GDPR Execute Erase Personal DataExecute erasure of personal data using request ID from trigger
  • Create Media FolderCreate a new folder in the uploads directory
  • Rename Media File URLRename the actual file name and URL of a media item
  • Move Media to FolderMove a media file to a different folder in the uploads directory
  • Delete Post MetaDelete a specific meta key from a post
  • Update Post MetaUpdate a specific post meta key with a new value
  • Add Post MetaAdd a new meta key and value to a post
  • Delete User MetaDelete a specific meta key from a user
  • Update CommentUpdate an existing comment
  • Delete CommentDelete a comment by ID
  • Get CommentsRetrieve comments by post ID, user, or status
  • Set Post StatusChange the status of a post
  • Set Post ThumbnailSet the featured image of a post
  • Remove Post ThumbnailRemove the featured image from a post
  • Duplicate PostClone a post with its meta and taxonomies
  • Delete TermDelete a term from any taxonomy
  • Delete CategoryDelete a category by ID
  • Delete TagDelete a tag by ID
  • Get OptionRetrieve a WordPress option value
  • Update OptionUpdate a WordPress option value
  • Get Users by MetaRetrieve users by a specific meta key and value
  • Send Password ResetSend a password reset email to a user
  • Search WordPressSearch posts, users, post meta, user meta, taxonomy terms, options or comments. Never fails on a miss — always returns found or not_found
  • Create User if Not ExistsCreate a user only when a matching one does not exist. Always reports whether the user was created or already existed
  • Get User by UsernameGet an user profile by username (user_login)
  • Delete PostDelete post by ID from the site
  • Upload Base64 ImageUpload a base64 encoded image to the WordPress Media Library
  • Add Taxonomy to PostAdd a taxonomy to post
  • Remove Taxonomy from PostRemove a taxonomy from post
  • Create TermCreate a new taxonomy term
  • Get Media by IDRetrieve the media details by ID
LearnDash app icon

LearnDash

Integration page

Triggers (8)

  • Course CompletedTriggers when a course is completed
  • Enrolled Into a CourseTriggers when a user is enrolled into a new course
  • Added Into a GroupTriggers when a user is added to group access
  • Essay SubmittedTriggers when a new essay is submitted
  • Group CompletedTriggers when a user completes all courses in a group
  • Lesson CompletedTriggers when a lesson is completed
  • Quiz CompletedTriggers when a quiz is completed by student
  • Topic CompletedTriggers when a topic is completed

Actions (6)

  • Add to GroupAdd user to group(s).
  • Remove From GroupRemove from group.
  • Enroll Into CourseEnrol user into a course.
  • Remove From CourseRemove the student access from LearnDash course(s).
  • Mark Course as CompleteMark the course as complete for user.
  • Reset Course ProgressReset the given course progress for user.

Why run this pair with FlowMattic

WordPress and LearnDash connect through FlowMattic on your own site, with no separate automation account in the middle and no charge per run.

Everything stays inside WordPress

Users, roles and LearnDash progress live in the same database, and FlowMattic works on them from inside that site with no outside service involved.

Rules you can see

Each enrolment or role rule is a workflow on the canvas with its own run history, which is easier to check than settings spread across several plugins.

Large cohorts, same plan

Runs are unlimited, so enrolling a whole company or a big launch list needs no larger plan.

Common questions

Can LearnDash enrol users automatically when they register?

Yes. Start a workflow with the WordPress New User trigger and add Enroll Into Course or Add to Group. Add a Filter on the role or on a profile field if only some registrations should get the course.

Can finishing a course change what a user can access on the site?

Yes. Course Completed or Group Completed can run Add Role to User or Change User Role. Any page, forum or plugin that checks for that role then treats the user differently.

How do I take away course access when a subscription ends?

If your membership or subscription plugin removes a role when access ends, start from User Role Removed, filter on that role, and run Remove From Course or Remove From Group for the related content.

Can I enrol people who already have accounts?

Yes. Use a Schedule trigger with Get All Users by Role, loop over the users with Iterator, and add Enroll Into Course. Switch the workflow off once it has run.

Can quiz results show on a member's profile?

Yes. Quiz Completed can run Update User Meta to save the latest score under a meta key you choose. Profile templates, member directories and other plugins that read user meta can then display it.

Did not find your answer? You can browse the help center or ask us directly.

Start automating WordPress and LearnDash

Install FlowMattic, connect both accounts and import a template. Every run stays on your own server.

30-day money-back guarantee Unlimited workflows and runs Self-hosted

Reviewed 23 Oct 2026. The example workflows are written with AI from the real triggers and actions of both integrations and checked against them. WordPress integration 7.3.0, LearnDash integration 1.0.4.