LearnPress
To install the plugin ensure that your website running:
- WordPress 5.9 or newer
- PHP 7.1 or newer
Installation
How to install LearnPress
Download LearnPress from the WordPress plugin directory and install it through the standard WordPress installation process.
How to install Better Messages with LearnPress
- Install Better Messages through the WordPress plugins screen, or upload the plugin files to
/wp-content/plugins/bp-better-messages. - Activate the plugin through the Plugins screen.
- Go to Better Messages → Settings → Integrations → LMS to enable the integrations you want.

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

The button is styled to match the native LearnPress course buttons and is hidden for the instructor on their own course.
Enable in Better Messages → Settings → Integrations → LMS → Message Instructor Button.
Send Message button on instructor profile
Adds a Send Message button to the LearnPress instructor archive (/instructor/<slug>/) so visitors can reach the instructor directly from their profile.

Enable in Better Messages → Settings → Integrations → LMS → Send Message Button on Instructor Profile.
Course Group Chat
When a course is opened, Better Messages automatically creates a group conversation that the instructor and every enrolled student can join. Students are added on enrollment and removed when their enrollment ends.
The conversation header shows the course thumbnail, title, and instructor name, so students always know which course the discussion belongs to.

Enable in Better Messages → Settings → Integrations → LMS → Course Group Chat.
The course info card pictured above is rendered automatically above the conversation. It also appears on private DMs opened through the Message Instructor button so the recipient knows which course you are asking about. To hide it on every LMS course conversation, turn off Better Messages → Settings → Integrations → LMS → Shared Course Settings → Course Info Card.
Courses widget
Once Course Group Chat is enabled, the user's enrolled and authored courses 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.

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.
Messages Profile Tab
Adds a Messages tab to the LearnPress user profile (/lp-profile/<slug>/messages/). The tab embeds the full Better Messages inbox so students can read and reply to conversations without leaving their profile.

Enable in Better Messages → Settings → Integrations → LMS → Messages Profile Tab.
Use the LearnPress profile as the primary messages location
Open Better Messages → Settings → General → Messages Location and choose Show in LearnPress Profile to redirect every internal Messages link (notifications, the All messages link in mini-chats, etc.) to the LearnPress profile Messages tab.

When this option is selected, the Messages Profile Tab toggle is enabled and locked automatically — without it the redirect would have no destination.
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.
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_learnpress_course_button]
Renders the Message Instructor button for a LearnPress course. Falls back to the current course post when no course_id is supplied.
| Attribute | Default | Notes |
|---|---|---|
course_id | current post | Override the course the button targets |
user_id | course instructor | Override the message recipient |
class | LearnPress button classes | Override CSS classes |
text | Message Instructor | Override the button label |
[better_messages_learnpress_course_button]
[better_messages_learnpress_course_button course_id="123"]
[better_messages_learnpress_course_button text="Ask the instructor"]
[better_messages_learnpress_instructor_button]
Renders the Send Message button on a LearnPress instructor profile. Resolves the instructor from the queried author archive when no user_id is supplied.
| Attribute | Default | Notes |
|---|---|---|
user_id | profile owner | Override the message recipient |
class | LearnPress button classes | Override CSS classes |
text | Send Message | Override the button label |
[better_messages_learnpress_instructor_button]
[better_messages_learnpress_instructor_button user_id="42"]