Stedica LMS turns a WordPress site into a full training platform, with no external
service required.
For learners
Course catalog and self-enrolment, a course player with resume, progress tracking and
drip-released lessons, eight quiz types, certificates, leaderboards and achievements.
For instructors
A drag-and-drop course builder (lessons and topics: text, video, audio, document, SCORM,
H5P, quiz, assignment), a reusable question bank, a grading queue with a visual rubric
grid, a weighted gradebook, and per-learner and per-course progress with CSV export.
For administrators
Roles and capabilities, white-label branding, editable categories and levels, and an
audit log covering 27 action types.
Selling courses
Link a WooCommerce product to a course: the buyer is enrolled on payment and access is
revoked on refund. No external service and no subscription required.
Standards
SCORM 1.2 and 2004 import and runtime, with resume and HTTP Range media streaming.
- Upload the plugin through Plugins → Add New → Upload Plugin, or extract into
wp-content/plugins/.
- Activate. Tables, roles and upload directories are created automatically.
- Create a page containing
[stedica_catalog] and another containing
[stedica_course_player], then point Stedica LMS → Settings at both so links and
emails resolve.
- To sell courses, set Stedica LMS → Settings → Commerce provider to WooCommerce and
install WooCommerce if it is not already there. It defaults to None, and until it is
set the course-to-product field does not appear on a product and no order grants
access. Courses can of course be free, or enrolled by an administrator, with no
provider set at all.
Certificates are rendered as PDF by dompdf, which ships inside this plugin. There is
nothing to install and no external service involved. If the library cannot be loaded —
a source checkout with no dependencies installed, for instance — certificates fall back
to printable HTML and every other feature is unaffected.
2.5.7
- A SCORM package now stays as the file you uploaded, read directly rather than
unpacked into hundreds of files on the server. The same modules play and resume, audio
and video still seek, and a 12MB course now takes 12MB instead of 24MB. Existing
packages keep working.
- The certificate design moved into its own stylesheet,
certificate.css, so a theme
override can restyle it without touching PHP.
- Three course-lookup queries were rewritten so their use of placeholders is evident at
the call site. No behaviour changes.
2.5.6
SCORM courses and certificate downloads were broken for everyone, plus a package of security fixes
- SCORM courses and certificate downloads did not work at all. Every protected file
was served through an address that refused the browser's own request, so learners saw
an empty course player and a download button that did nothing. Fixed, with a test that
fails if it returns.
- SCORM packages now load their own images, audio and scripts. On sites using Plain
permalinks the first page appeared and everything it referenced was missing.
- A malformed SCORM package could fill the disk. The size limit trusted figures the
package declared about itself, which can be forged. It is now enforced against what
actually lands on disk.
- A SCORM package could smuggle in server-executable or server-configuration files.
Every part of every path is now checked, and legitimate multi-language filenames are
still accepted.
- A failed import no longer leaves the package behind, and uploads are no longer
staged in a publicly readable folder under the uploader's own filename.
- Duplicating a course no longer produces a dead SCORM topic.
- The plugin stopped writing inside its own folder, where WordPress deletes files on
every update and plugins are not permitted to write.
- Certificates are no longer written as web pages when no PDF renderer is present,
and files left by older versions are removed on update.
- Admin notices are confined to this plugin's own screens, dismissed per person, and
stay dismissed.
- The uploads folder is now named for the plugin. Files were kept in
wp-content/uploads/stedica/; they are now in wp-content/uploads/stedica-lms/, which
is what the WordPress.org guidelines require. Existing certificates, submissions and
SCORM packages are moved automatically on update and keep working. Course artwork is
copied rather than moved, so any image address already published elsewhere — in a page,
an email, another system — keeps resolving from the old location.
- An instructor could import a SCORM package into another instructor's course.
Uploading a package checked only that you may manage courses, not that the course was
yours, and the course id decides who is allowed to play the package. It is now checked,
and a course id that does not exist is refused instead of extracting to a folder nothing
can serve.
- The "Visit plugin site" link went to a page that did not exist.
Full detail for this and every earlier release is in changelog.txt, shipped beside this
file.
Earlier releases
Earlier releases are in changelog.txt, shipped beside this file.
WordPress.org truncates this section, and a changelog cut off mid-sentence tells a reader
less than a short one that ends where it means to.