DRM-X 6.0 حمام وشعار فرع الزيتونDRM-X 6.0الوثائق
◎ العربية

WordPress LMS and membership plugins

Add protected video to WordPress lessons while keeping enrollment, purchases and membership rules in your existing platform.

عرض Markdownأمثلة قابلة للتجربةUpdated 2026-09-15

كيف يُصرَّح بتشغيل الفيديو

يحدد خادم التطبيق من يحق له المشاهدة. توفر DRM-X تصريح التشغيل، ويستخدمه المشغّل لطلب ترخيص DRM.

  1. المشاهد

    يسجّل الدخول إلى خدمتك ويطلب مشاهدة فيديو.

  2. خادم التطبيق لديك

    يتحقق من عملية الشراء أو الاشتراك أو أي صلاحية أخرى للمشاهدة لدى المستخدم.

  3. DRM-X

    تطبّق قواعد التشغيل المختارة وتعيد إعدادات التشغيل والتصريح.

  4. المشغّل

    يستخدم التصريح المستلَم لطلب ترخيص DRM اللازم للتشغيل.

DRM-X يُنفّذُ السياسةَ الموقّعةَ، وسائلِ الإعلام المشفرة و DRM رخصِ إتّباع مساراتِ تسليم منفصلةِ.

Install and configure#

Download the plugin ZIP below. In WordPress, open Plugins → Add Plugin → Upload Plugin, install the ZIP and activate DRM-X 6.0 Universal Player. Then open Settings → DRM-X 6.0. Start with a staging site.

Enter Site ID, Site Key and Access Key from a server integration with license-tokens:create permission. These values stay on your server. The saved Access Key is encrypted using your WordPress authentication salt; after salt rotation, enter the key again.

Choose the LMS access adapter and the default license policy. Selecting WordPress signed-in users intentionally allows every signed-in account to view a mapped published post; use an LMS or membership adapter for paid courses.

Download the WordPress plugin

Click Save settings after entering the connection values. The screenshot uses placeholders: replace them with your own values. When updating an existing connection, a blank Access Key field keeps the saved key.

1. Plugin settings: connection values, access adapter, membership requirement and default protection policy. Credentials are replaced with placeholders.
1. Plugin settings: connection values, access adapter, membership requirement and default protection policy. Credentials are replaced with placeholders.

Map a lesson and embed the player#

Sign in as a WordPress administrator. Open the page or LMS lesson, click the block inserter (+), search for DRM-X Protected Video and insert that block. You can type Content ID directly into the block; the same fields also appear under Block → DRM-X video in the right sidebar.

  1. Copy Content ID from the published video in the DRM-X Console and paste it into the Content ID field. Do not paste Site ID, a video URL or a WordPress post ID.
  2. Choose Video on demand (VOD) for a packaged video, or Live stream for live content. The selection must match the published content.
  3. Choose Protection policy, or keep Use course or site default to inherit the policy. Require HDCP in this example is a policy choice, not a requirement for every video.
  4. Click Save for an existing published page, or Save draft while preparing a new page. Publish when the page is ready for learners. Reopen the editor to confirm that Content ID and policy were saved.
2. Select DRM-X Protected Video and enter Content ID, content type and policy. The fields are available both inside the block and in its sidebar. The Content ID shown here is an example.
2. Select DRM-X Protected Video and enter Content ID, content type and policy. The fields are available both inside the block and in its sidebar. The Content ID shown here is an example.

For LMS lessons, open Course and access rules in the Block sidebar to select the adapter and course ID. To reuse another page’s video, expand Use a video configured on another page and enter that existing page ID; leave 0 for this page. Classic Editor and Elementor users can still configure DRM-X Protected Video in the page’s classic meta box, then use the widget or shortcode below.

For LearnPress and MasterStudy lessons, select the matching Access adapter and enter the actual LMS course ID. LearnDash, Tutor LMS and Sensei normally detect the course. Leave course ID as 0 for an ordinary WordPress page. The example value 123 below must be replaced with your course ID.

3. Block → Course and access rules: this example shows LearnPress and a sample course ID. Enrollment and any additional membership requirement must both allow access.
3. Block → Course and access rules: this example shows LearnPress and a sample course ID. Enrollment and any additional membership requirement must both allow access.
[drmx_player]
[drmx_player post_id="123"]

Policy priority is lesson, then associated course, then site default, then DRM-X environment default. Leaving a lesson policy empty means inherit; it does not skip the course and site settings. Choose a policy that matches the package key model and target devices.

How each adapter checks access#

LearnPress checks course access and the specific curriculum item. Tutor LMS checks the enrolled lesson and its course. Sensei LMS uses its native lesson-access function, including prerequisites. MasterStudy LMS checks the configured course and lesson.

LearnDash checks course access and whether the learner can read the requested course step. Its commercial package still requires testing with your licensed edition.

WooCommerce Memberships, MemberPress and Paid Memberships Pro use their native post-access rules. An additional membership adapter is combined with the LMS check: both checks must pass. WooCommerce Subscriptions is supported through Memberships access rules; a subscription name or a completed order alone does not authorize a lesson.

When Tutor LMS content drip or MasterStudy sequential drip is enabled, the plugin requires a server filter that verifies that specific lesson. The default is denial. Implement drmx_tutor_drip_access or drmx_masterstudy_drip_access against your licensed add-on before enabling those lessons.

If Tutor LMS and Sensei LMS coexist, choose the adapter explicitly for shared lesson post types. Custom integrations use drmx_user_can_play_content and must return true only after the server verifies access.

Open the page and test the Universal Player#

Open the saved page as an authorized learner and click Play. The editor shows configuration fields; the page shown to learners displays DRM-X 6.0 Universal Player. WordPress checks the current user and saved mapping before requesting a playback session.

4. The Universal Player on the WordPress test page, paused after a PlayReady session started. This capture shows the controls and elapsed time; the protected video surface appears black in the screenshot.
4. The Universal Player on the WordPress test page, paused after a PlayReady session started. This capture shows the controls and elapsed time; the protected video surface appears black in the screenshot.

Use the gear button to open Playback settings. Quality, audio tracks and subtitles depend on the published content. Use the volume, captions, picture-in-picture, theater and fullscreen controls where supported. To finish the session, open More options → Stop playback.

5. Universal Player settings: quality, audio track, subtitles, playback speed and sleep timer. Options can vary with content and device support.
5. Universal Player settings: quality, audio track, subtitles, playback speed and sleep timer. Options can vary with content and device support.

If the Content ID field or player is missing#

After upgrading from preview.1, save any pending page edits and refresh the editor to load the new block code. Select the DRM-X Protected Video block. In preview.2, Content ID is visible without opening the legacy Meta Boxes area.

Only an administrator with permission to edit the page can change its trusted DRM-X mapping. If you are editing with another role, ask the site administrator to configure the video.

Mapped post ID is an optional reference to another WordPress page that already has a DRM-X mapping. It is not Content ID. Keep it at 0 when configuring the video on this page. All blocks using the same page mapping share that video.

If playback is denied, check that the content is published in the configured DRM-X environment, the content type matches, and the learner has access to the lesson. Check the LMS adapter, course ID and any additional membership requirement. Do not switch a paid course to WordPress signed-in users just to bypass an access failure.

Test before rollout#

The local test matrix covers WordPress 7.1, LearnPress 4.4.7, Tutor LMS 4.0.8, Sensei LMS 4.26.3 and MasterStudy LMS 3.7.49. Basic enrolled, unenrolled and unpublished-lesson cases were exercised. This does not qualify every paid add-on, theme or platform update.

Exclude protected pages and the DRM-X REST endpoint from shared caches. Test expired memberships, refunds, drip schedules, browser navigation, Stop and concurrent-stream limits with your own published content.