Skip to main content

LearnDash

REQUIREMENTS

To install the plugin ensure that your website running:

  • WordPress 5.9 or newer
  • PHP 7.1 or newer

Installation

How to install LearnDash

Download LearnDash from learndash.com and install it through the standard WordPress plugin installation process.

How to install Better Messages with LearnDash

  1. Install Better Messages through the WordPress plugins screen, or upload the plugin files to /wp-content/plugins/bp-better-messages.
  2. Activate the plugin through the Plugins screen.
  3. Go to Better Messages → Settings → Integrations → LMS to enable the integrations you want.

LearnDash integration settings

Supported features

Message Instructor button on course page

Adds a Message Instructor button to every LearnDash course page. Students can open a private conversation with the course instructor with a single click.

Message Instructor button on the LearnDash course page

The button targets the user listed as the course author and is hidden for the instructor on their own course.

Enable in Better Messages → Settings → Integrations → LMS → LearnDash Integration → Message Instructor Button.

Course Group Chat

When a course is opened, Better Messages automatically creates a group conversation that the course author and every enrolled student can join. Students are added on enrollment and removed when their access is revoked.

The conversation header shows the course thumbnail, title, and instructor name, so students always know which course the discussion belongs to.

LearnDash course group thread with the course info card

LearnDash exposes enrollment changes through learndash_update_course_access, which Better Messages listens to for both adds and removes — including the ones LearnDash performs automatically when a student is enrolled into a course via a group.

Enable in Better Messages → Settings → Integrations → LMS → LearnDash Integration → Course Group Chat.

The course / group info card pictured above is rendered automatically above the conversation, including on the LearnDash Group Chat below and on private DMs opened through the Message Instructor button. To hide it on every LMS course conversation, turn off Better Messages → Settings → Integrations → LMS → Shared Course Settings → Course Info Card.

LearnDash Group Chat

LearnDash Groups (/groups/<slug>/) are cohorts of students sharing access to one or more courses, managed by users with the Group Leader role. Better Messages mirrors that organisation by creating a dedicated chat for each LearnDash Group.

LearnDash Group cohort chat with group info card

Group members are kept in sync via ld_added_group_access and ld_removed_group_access, and every Group Leader assigned to the cohort is auto-joined as an instructor of the chat.

Enable in Better Messages → Settings → Integrations → LMS → LearnDash Integration → LearnDash Group Chat.

Send Message button on Instructor profile

If you run the LearnDash Instructor Role add-on, every instructor gets a public profile at /instructor/<username>/. With this toggle on, Better Messages adds a Send Message button to that profile, positioned right under the instructor's name.

Send Message button on the LearnDash Instructor Role profile

Clicking the button opens a private conversation with that instructor — the same flow as the Message Instructor button on a course page, but available from anywhere on the site that links to the instructor's profile.

info

This toggle is only available when the LearnDash Instructor Role add-on is active. It is a separate, paid LearnDash add-on and is not bundled with Better Messages.

Enable in Better Messages → Settings → Integrations → LMS → LearnDash Integration → Send Message Button on Instructor Profile.

Courses widget

Once Course Group Chat or LearnDash Group Chat is enabled, the user's courses and LearnDash Group cohorts surface in the dedicated Courses widget on the Mini Widgets bar, Side Panel, and Mobile bar — separate from the social Groups widget so academic chats and friend cohorts don't mix in one list.

Courses widget on a LearnDash site showing courses and a LearnDash Group cohort

Configure the icon, role restrictions and "Hide Tab When Empty" behaviour under Better Messages → Settings → Mini Widgets → Courses.

Shared course settings

Three toggles under Better Messages → Settings → Integrations → LMS → Shared Course Settings apply to every LMS course conversation across LearnDash, LearnPress, Tutor LMS, MasterStudy LMS and FluentCommunity Courses:

  • Course Info Card (on by default) — show the title, image and instructor name banner above each course conversation, including the private DM opened by Message Instructor. Turn off to hide the banner everywhere.
  • Email Notifications (on by default) — send the standard "new message" email to participants when activity happens in a course chat. Turn off if your students do not rely on email or you want to reduce traffic.
  • Push Notifications (off by default) — send browser and mobile push notifications for new course messages. Requires a WebSocket license.

Changing any of these toggles propagates across all four LMS integrations.

Shortcodes for custom placement

If the auto-injected buttons don't land where you want them (custom layout, sidebar widget, page builder, etc.), drop the matching shortcode wherever you need.

info

Disable the corresponding toggle (Message Instructor Button / Send Message Button on Instructor Profile) before placing the shortcode, otherwise the button will be rendered twice — once auto-injected and once by the shortcode.

[better_messages_learndash_course_button]

Renders the Message Instructor button for a LearnDash course. Falls back to the current course post when no course_id is supplied.

AttributeDefaultNotes
course_idcurrent postOverride the course the button targets
user_idcourse authorOverride the message recipient (instructor)
classLearnDash button classesOverride CSS classes
textMessage InstructorOverride the button label
[better_messages_learndash_course_button]
[better_messages_learndash_course_button course_id="123"]
[better_messages_learndash_course_button text="Ask the instructor"]

[better_messages_learndash_instructor_button]

Renders a Send Message button targeted at a LearnDash instructor. Resolves the instructor from the LearnDash Instructor Role profile (/instructor/<username>/) by default, or from the standard WordPress author archive.

AttributeDefaultNotes
user_idprofile ownerOverride the message recipient
classLearnDash button classesOverride CSS classes
textSend MessageOverride the button label
[better_messages_learndash_instructor_button]
[better_messages_learndash_instructor_button user_id="42"]