Open Source · GPL-2.0

Scormpleted — SCORM Support for LearnDash LMS

Upload SCORM packages, embed them in LearnDash lessons, and track completion. Everything is stored in your own WordPress database. No external services, no subscriptions, no third party accounts.

If you run a LearnDash based learning site and want to deliver SCORM courses to your students, Scormpleted handles the whole thing. Upload your zip file, add the block to your lesson, and learners start seeing their progress tracked automatically. It really is that straightforward.

  • SCORM 1.2 & SCORM 2004
  • Gutenberg block for LearnDash lessons
  • Auto marks lesson and course complete
  • Session resume across visits

Beta software. Core functionality works well for standard SCORM 1.2 content in LearnDash but edge cases exist. Please test on a staging site before deploying to live learners.

Requirements
WordPress 5.8+

LearnDash 3.0+

PHP 7.4+ with ZipArchive

Tested on
LearnDash 4.10.1

Licence
GPL-2.0+

Current version
1.0.0-beta.1

Why Scormpleted

SCORM in LearnDash shouldn’t cost $400 a year

The usual way to get SCORM working in LearnDash means paying for a SCORM companion plugin and then separately paying for a cloud LRS service on top of that. These two together typically run between $300 and $500 per year just to deliver courses your learners can complete. Scormpleted removes both of those dependencies. Everything runs inside WordPress, your learner data stays on your own server, and you keep that budget for things that actually matter.

$0
Scormpleted
annual cost of free version

vs
typical alternative

$129
SCORM companion plugin
per year

+$300
Cloud LRS service
per year

Your data stays with you

All SCORM runtime data, completion records and learner progress live in your own WordPress database. Nothing is sent to a third party server. You own it completely.

No extra plugins needed

One plugin does upload, content serving, SCORM runtime and LearnDash completion tracking. No companion plugins, no additional accounts, no configuration on external services.

Works with LearnDash natively

Lesson completion, course progress and certificate triggers all go through LearnDash’s own internal functions. No workarounds or custom database tables for tracking progress.

Open source

GPL-2.0 licensed, same as WordPress itself. Read the code, fork it or adapt it however you need. No black boxes, no vendor lock in, no licence renewals to worry about.

Setup

Getting started takes about 10 minutes

There are no API keys to configure, no external accounts to create and no complicated settings pages to wade through. Three steps and you are done.

1

Upload your SCORM package

Go to Scormpleted in your WordPress admin and click Add New. Upload the zip file from your authoring tool. The plugin reads the manifest, pulls out the launch file and detects the version automatically. You can override the title and passing score if needed.

2

Add the block to a lesson

Open any LearnDash lesson in the Gutenberg editor, add the SCORM Content block and pick your package from the dropdown. Set the height if the default does not suit your content. Publish the lesson and it is live.

3

Completion happens automatically

When a learner finishes the SCORM content, the plugin marks their LearnDash lesson and course complete in the background. Certificates issue through LearnDash as normal. No manual steps, no webhook configuration, nothing extra.

Features

What’s included

Core functionality for delivering SCORM content inside LearnDash. Straightforward, self contained and stored entirely in your own WordPress database.

Package Management

Upload a SCORM zip file and the plugin handles the rest. It extracts the package, parses imsmanifest.xml and automatically identifies the SCORM version, the correct launch file and the mastery score defined by the course author. You can override any of these settings per package.

Gutenberg Block

A dedicated SCORM Content block in the Gutenberg editor lets you search for and embed any uploaded package directly into a LearnDash lesson or topic. Width, height, completion type and tracking settings can all be configured per block without touching any code.

LearnDash Completion

When the SCORM package sends a passed or completed status, Scormpleted marks the corresponding LearnDash lesson as done. Course completion and any certificates attached to the course then follow LearnDash’s standard flow without needing any extra configuration.

Session Resume

SCORM runtime data is written to your WordPress database every time the content commits. If a learner closes the browser partway through, their position, score and suspension data are all saved. Next time they open the lesson they pick up exactly where they stopped.

Completion Reports

A reports table in the WordPress admin shows every completion record with the learner’s email, the content they completed, their score and a timestamp. You can filter by user ID or content ID to quickly find what you need. No external reporting tool required.

Developer Friendly

When something is not working as expected, turn on Debug Mode in settings and work through the log file at wp-content/scormpleted-debug.log. Every step of the completion flow is recorded. There is also a built in reset tool that clears test data for a specific user without needing direct database access.

Compatibility

Works with the tools you already use

SCORM 1.2 and SCORM 2004 are well established standards and pretty much every serious authoring tool exports to one or both of them. If your tool produces a valid SCORM package it should work with Scormpleted without any special configuration.

The tools listed here have been tested directly on real content. If you are using something not on the list and you run into problems, open an issue on GitHub with your authoring tool name and the error log and we will look into it.

Open an issue on GitHub

Articulate Storyline 360
Articulate Rise 360
Adobe Captivate
iSpring Suite
Lectora Inspire
dominKnow Claro

Storyline and Rise are probably the most common tools used by our early testers. Both export clean SCORM 1.2 packages and work well. If you are exporting from Captivate, make sure you are publishing to SCORM 1.2 rather than SCORM 2004 for the most reliable results at this stage.

Scope

What it does and what it doesn’t

Being honest about what Scormpleted can and cannot do is important to us. If it is not the right fit for your situation we would rather tell you upfront than have you waste time setting it up.

What Scormpleted does


Upload and serve SCORM 1.2 and SCORM 2004 packagesZip file upload, auto extract, manifest parsing

Embed content in LearnDash lessons via Gutenberg blockPick a package, set dimensions, publish

Mark LearnDash lesson and course complete automaticallyTriggered when SCORM reports completed or passed

Resume sessions across visitssuspend_data and lesson_location preserved in your database

Apply mastery score and passing percentageAuto detected from manifest or set manually per package

Basic completion reportsUser, content, status, score and timestamp in WP admin

Trigger LearnDash certificates on course completionStandard LearnDash flow, no custom logic needed

What it doesn’t do


xAPI (Tin Can) or cmi5 contentThese require a Learning Record Store, outside this plugin’s scope

SCORM 2004 adaptive sequencingLinear courses work fine, branching sequences do not

Interaction level reportingQuiz answers and hotspot data require a full LRS

Multi SCO packages (partial support only)Only the first SCO is launched, complex sequences may break

Other WordPress LMS pluginsLifterLMS, LearnPress, TutorLMS are not supported yet

Full production stability (beta)Core works well but test on staging before going live

Offline or mobile app deliveryBrowser only, no offline sync or app wrapper

Need xAPI, cmi5, or support for a different LMS? Get in touch and we can help figure out what will work for your setup.

FAQ

Common questions

Questions we get asked regularly. If yours is not here, open an issue on GitHub or get in touch directly.

Do I need any other SCORM plugin installed?
No. Scormpleted is a standalone plugin and does not require GrassBlade xAPI Companion, GrassBlade LRS, Tin Canny or anything else. You just need LearnDash to be active on your site. That is it.

What are the server requirements?
WordPress 5.8 or higher, PHP 7.4 or higher and the PHP ZipArchive extension. ZipArchive is turned on by default on pretty much all managed WordPress hosts including SiteGround, Cloudways, Kinsta and Hostinger. LearnDash 3.0 or above is required for the completion features to work.

Will it work with my caching plugin?
Scormpleted calls the cache purge API for LiteSpeed Cache, WP Rocket, W3 Total Cache and WP Super Cache straight after marking a lesson complete. So the course page should reflect the updated status on the next page load without the learner needing to clear anything manually.

My SCORM content loads but completion is not being tracked. What do I check?
First enable Debug Mode in Scormpleted Settings. Then complete the lesson as your test user and open the log file at wp-content/scormpleted-debug.log. The log shows every step of the completion flow so you can see exactly where it stops. Common issues are the lesson not being associated with a course the learner is enrolled in, or the SCORM package reporting incomplete instead of completed. If you are stuck, share the log in a GitHub issue and we will help.

Can I use this with LifterLMS, LearnPress or TutorLMS?
Not yet. LearnDash is the only supported LMS at this stage. Support for LifterLMS, LearnPress and TutorLMS is planned. If you need it sooner, get in touch because this is something we can look at as a custom project.

How does the SCORM runtime actually work?
The plugin serves a standalone launch page for each SCORM package. This page loads the SCORM JavaScript API object that your content expects to find. When the content calls LMSSetValue or LMSCommit, the plugin saves the CMI data to your WordPress database via a standard AJAX request. When the content calls LMSFinish or reports a completion status, the completion logic runs and updates LearnDash. The whole thing runs in an iframe embedded in the lesson page.

What happens if a learner starts a course and does not finish it?
Their progress is saved each time the SCORM content commits data, which happens automatically as they work through it. The suspend_data and lesson_location values are stored in your database. Next time they open the lesson, the runtime restores that data and the content resumes from where they left off. This works across different devices as long as they are logged in to the same account.

Need help or working with a different LMS?

Scormpleted handles the common case well. If your situation is more complex, a different LMS, xAPI content, compliance reporting requirements, multi tenancy or anything else, we are happy to have a conversation about what the right solution looks like.

We do WordPress and eLearning development at Justaddwater. SCORM integration, LearnDash customisation, LMS migrations and custom reporting are things we work on regularly. If you need proper support rather than a free plugin, reach out.

Free project quote

Please fill out the enquiry form below and we’ll establish communication with you as soon as possible

    Lee Zinser

    Founder at Needgr8r
    "Team is great to work with.. They get what you need and action it with great results. Him has worked with us for a few years on various web related projects.. They are problem solvers and give valuable suggestions regarding the project. They are very fair and work fast. We are using them on continued projects. Thanks!"
    Source: Upwork.com

    Add Your Heading Text Here

    Get a Free Project Quote

    Fill out the enquiry form below, and we’ll get in touch with you shortly.

      "Team is great to work with.. They get what you need and action it with great results. Him has worked with us for a few years on various web related projects.. They are problem solvers and give valuable suggestions regarding the project. They are very fair and work fast. We are using them on continued projects. Thanks!"
      Lee Zinser
      Founder at Needgr8r

      HIGHLY RATED ON: