Overview
Embed and track SCORM 1.2/2004 packages hosted on Allure SCORM-API inside WordPress. Supports LearnDash, LifterLMS, Tutor LMS, and LearnPress with auto-completion.
Install / Update
- Download the latest plugin ZIP from app.allureconnect.com/download/wordpress-plugin (no sign-in required). The first-party fallback is named
allure-xapi-connect-<version>.zipand its response includes the companion.sha256URL; after the route redirects to WordPress.org, the archive uses WordPress.org'sallure-xapi-connect.<version>.zipnaming and that first-party checksum does not apply. - Upload via Plugins → Add New → Upload Plugin.
- Activate (deactivate/delete older versions first if WP blocks overwrite; settings stay in DB).
- Go to Allure xAPI → Settings and set:
- API Endpoint (default
https://app.allureconnect.com) - API Key (from Build → API keys)
- Tenant ID (the Account ID in the same Connect credentials card)
- API Endpoint (default
- Click Test Connection.
Upload SCORM packages
- Navigate to Allure xAPI → Packages → Add New.
- Pick a SCORM ZIP; upload goes direct-to-cloud via presigned URL.
- After processing, the package appears with its UUID.
Embed content
One-keystroke insert: In any paragraph inside the block editor, type
/allure. The Allure SCORM Player block surfaces as the top suggestion — press Enter, pick a package, done. Works inside LearnDash, LifterLMS, Tutor LMS, and LearnPress lesson editors, not just standard pages/posts.
- Gutenberg block: Insert Allure SCORM Player (or type
/allure), choose package, width/height/mode. - Shortcode (classic editor):
[allure_scorm id="PACKAGE_UUID" width="100%" height="600" mode="embed|lightbox|new_window" title="Optional"]
LMS integrations
- Edit a lesson/topic → SCORM Content box → pick package and mode; optionally auto-complete on SCORM completion.
- Integrations: LearnDash (lessons/topics), LifterLMS (lessons), Tutor LMS (lessons), LearnPress (lessons).
Retakes and LMS resets (1.4.12)
- Completion comes from Allure Connect. A lesson completes when Connect reports the session completed or passed. The plugin completes each lesson at most once per session.
- Relaunching a completed lesson reopens the same Connect session, following the course's Attempts and relaunch setting in Connect. Existing courses reopen and keep recording; courses created after this release open in review mode.
- Retakes belong to your LMS. Connect's player shows no Start over button unless you turn it on, so learners retake a lesson when your LMS resets it (see below).
- Resetting in the LMS lets the learner retake the lesson. The plugin does three things:
- clears its completion record for the lesson, so completing it again re-completes the lesson;
- queues
POST /api/v1/sessions/{id}/reset, so Connect shows the reset (session.reset) straight away; - starts the learner's next launch as a new Connect attempt (
new_attempt). Earlier attempts stay in Connect's history.
| LMS | Reset actions the plugin listens for |
|---|---|
| LearnDash | Lesson/topic Mark incomplete (learndash_mark_incomplete_process); user LearnDash data deleted (learndash_delete_user_data) |
| LifterLMS | Lesson marked incomplete by an admin or learner (llms_mark_incomplete, lessons only); course enrollment deleted (llms_user_enrollment_deleted) |
| Tutor LMS | Course progress reset or retake (delete_tutor_course_progress) |
| LearnPress | Course user-items cleanup (learn-press/user-item-old/delete) |
- Resets that fire no hook are picked up at the learner's next launch. The plugin starts a new attempt when the LMS reports a lesson incomplete that it had confirmed complete. This covers LearnPress Retake course and its admin reset tool, and unticking steps on a LearnDash user profile.
- Developers can fire
do_action( 'allure_xapi_lms_progress_reset', $user_id, $lms, $post_ids, $reason )ordo_action( 'allure_xapi_lms_course_progress_reset', $user_id, $lms, $course_id, $reason )from custom reset tools.
REST for mobile/SPA
- Per-content lookup:
GET /wp-json/allure-xapi/v1/content-scorm?post_id={ID}[&lms=learndash]→{ post_id, lms, package_id, player_mode, auto_complete }. - Exposed field on LearnDash lessons/topics:
allurelms_scorm_package_id(e.g.,/wp-json/wp/v2/sfwd-lessons?course={COURSE_ID}&_fields=id,title,allurelms_scorm_package_id).
Plugin source
The plugin source is maintained in the Allure Connect repository under wordpress-plugin/. Maintainers can build a ZIP with npm run wp:zip and verify version and ZIP-root integrity with npm run wp:verify.
Troubleshooting
- Test Connection fails: recheck API Key & Tenant ID; confirm SCORM-API availability.
- Upload fails: ensure hosting limits aren’t too low; presigned upload bypasses most PHP limits but memory may still apply.
- Iframe blocked: allow your WP origin in
frame-ancestorsand avoidX-Frame-Options: DENYon the content origin.