LMS Integration

Updated

Pro feature. Available in MediaShield Pro.

MediaShield Pro integrates with LearnDash, Tutor LMS, and LifterLMS to automatically complete lessons when a student finishes a linked video, and to restrict video access to enrolled students.

Supported LMS Plugins#

  • LearnDash (lessons and topics)
  • Tutor LMS (lessons)
  • LifterLMS (lessons)

MediaShield detects whichever of these is active automatically - there is nothing to switch on. If none is active, the LMS panel does not appear on the video editor at all. Developers can add support for another LMS; see the mediashield_lms_adapters filter in the developer guide.

Linking a Video to a Lesson#

  1. Open a video for editing under Videos.
  2. Find the LMS Integration panel in the sidebar.
  3. Choose the lesson (or LearnDash topic) from the dropdown. Lessons are grouped by course.
  4. Set Complete at % - your options are the global default, 100%, 90%, 75%, or 50%.
  5. Optionally tick Require enrollment to watch.
  6. Click Update.

The lesson dropdown lists up to 200 lessons (and, on LearnDash, up to 200 topics). On a larger catalogue, some lessons will not appear in the list.

Showing the Video on the Lesson Page#

Once a video is linked, MediaShield appends the player to the bottom of that lesson's content automatically. You do not need to add anything to the lesson.

Two exceptions:

  • If the lesson content already contains a [mediashield ...] shortcode, MediaShield leaves it alone rather than showing the video twice.
  • Access rules still apply. If the viewer fails the login gate, the role gate, or the enrollment gate, nothing is appended.

To control placement yourself, paste the shortcode shown in the LMS panel into the lesson content where you want it:

[mediashield id=N]

The LMS panel's own help text still says linking does not place the video on the lesson page. That text is out of date - auto-append is the current behaviour.

Auto-Completion#

When a student reaches the completion threshold, MediaShield marks the linked lesson complete in the LMS. Details worth knowing:

  • Each milestone fires once per student per video, permanently. Rewatching does not re-fire it.
  • Milestones require a logged-in student. Guest viewing never triggers completion.
  • The per-video Complete at % wins; when it is left on the global default, the site-wide setting (default 100%) applies.
  • Auto-completion can be switched off site-wide with the LMS auto-complete setting.

Enrollment Access Gate#

Tick Require enrollment to watch on a video and students who are not enrolled in the course containing the linked lesson are blocked from watching it. Administrators bypass the check, and guests are always blocked when it is on.

This is a per-video switch, and it is the only one that works. The site-wide "Require enrollment" toggle under Settings > LMS has no effect in 1.3.0 - it saves, but nothing reads it. If you want enrollment enforced, tick the box on each video; do not rely on the global toggle.

A video with no linked lesson, or with the per-video box unticked, is not gated no matter what else is configured. If the LMS's own enrollment function is unavailable (for example the LMS was deactivated), MediaShield allows playback rather than locking everyone out.

The site-wide Auto-complete lessons and Global completion % settings on that same screen do work.

Playlist Funnel#

Drop-off between videos in a playlist is available through the REST API (/analytics/playlist-funnel/{playlist_id}), but there is no admin screen for it in 1.3.0. It is useful if you are building your own reporting; there is nothing to click in the dashboard.