# WordPress and Moodle

Integrate DRM-X 6.0 protected video with WordPress, LearnDash, LearnPress, and Moodle while keeping credentials and entitlement decisions server-side.

Canonical: https://docs.drm-x.com/integrations/wordpress-and-moodle
Updated: 2026-09-05

![Your backend decides access; DRM-X enforces the signed policy. Encrypted media and DRM licenses follow separate delivery paths.](https://docs.drm-x.com/assets/session-flow.svg)Your backend decides access; DRM-X enforces the signed policy. Encrypted media and DRM licenses follow separate delivery paths.

## WordPress workflow[#](#wordpress-workflow)

- Install the DRM-X Universal Player plugin on a staging site.
- Enter environment credentials in administrator-only settings; the Access Key must never appear in page HTML.
- Map post metadata or a shortcode such as `[drmx_player]` to a trusted Published protected file Content ID.
- Connect entitlement through the provided filter or supported LearnDash/LearnPress course-access check.
- Select a server-owned named policy template.

[Download WordPress package](https://drm-x6-cdn.1aicloud.com/drmx-universal-player-wordpress-1.1.0-preview.13-4ecb98869f76.zip)



## Moodle workflow[#](#moodle-workflow)

- Install the maintained filter in a staging Moodle environment.
- Configure Site ID, Site Key, and Access Key in administrator settings.
- Map the activity or filter markup to a trusted Content ID.
- Require the learner to be authenticated and enrolled with course access before creating playback.
- Test teacher, student, suspended, expired, guest, and unenrolled roles.

[Download Moodle package](https://drm-x6-cdn.1aicloud.com/drmx-universal-player-moodle-1.1.0-preview.13-1d0440dc3838.zip)



## Safe customization[#](#safe-customization)

Theme the player and map your content catalog freely. Keep these choices on the server: DRM-X Content ID, `subject`, named policy or custom policy, rental window, allowed quality, and entitlement. Do not accept them from shortcode authors who are not trusted administrators.



## Production acceptance[#](#production-acceptance)

- Confirm private pages and API responses are not cached across users.
- Verify logged-out, expired, and unenrolled customers cannot create playback.
- Confirm HTML source contains no DRM-X Access Key or successful playback response.
- Exercise Stop, navigation, mobile backgrounding, and concurrent-stream limits.
- Update plugins through a controlled administrator process and retain a rollback copy.



CMS integrations 

## WordPress, LearnDash, LearnPress, and Moodle[#](#wordpress-learndash-learnpress-and-moodle)





### WordPress

Use `[drmx_player]`, map post metadata to DRM-X Content ID, and connect entitlement through the provided filter or supported LMS access checks. Define the policy template on the server.

[Download plugin](https://drm-x6-cdn.1aicloud.com/drmx-universal-player-wordpress-1.1.0-preview.13-4ecb98869f76.zip) 

### Moodle

Install the filter, enter the environment credential in administrator settings, select a named policy template, and authorize only enrolled learners with course access.

[Download filter](https://drm-x6-cdn.1aicloud.com/drmx-universal-player-moodle-1.1.0-preview.13-1d0440dc3838.zip)  

CMS configuration is still a server boundary. Never expose plugin secrets through page source, REST discovery, debug output, or downloadable backups.
