Product documentation

Articulate Rise & HTML Package Loader

Upload self-contained HTML learning packages, manage them inside WordPress and publish them with a Gutenberg block or shortcode—without requiring LearnDash or an external course-hosting service.

Overview

A focused publishing layer for portable HTML learning content.

What it does

Upload and extract a ZIP, preview the package, then display it in a new tab, inline iframe, lightbox or fullscreen popup. Package usage reporting shows where each upload is embedded.

What it does not do

The loader does not provide SCORM or xAPI tracking, learner-progress reporting, an LRS or LMS completion logic. Packages with SCORM wrappers can display, but their tracking data is not recorded.

Package requirement: the ZIP must be self-contained and include a working index.html. Content that depends on an authoring platform login or inaccessible hosted assets is not supported.

Requirements

WordPress6.7 or later; WordPress 7.0 tested
PHP8.1 or later with the ZipArchive extension
Package formatSelf-contained ZIP containing a working index.html
Maximum package sizeUp to 200MB, subject to hosting and server limits
LearnDashOptional; the loader operates independently
Free tierUp to two active packages. Deleting a package releases its slot; replacing an existing package does not consume another slot.

Quick start

  1. Install and activate — Upload the plugin ZIP through Plugins → Add New. Confirm PHP 8.1+ and ZipArchive are available.
  2. Export a web package — Create a self-contained ZIP with a working index.html from Articulate Rise, BranchTrack, MindSmith or another compatible authoring tool.
  3. Upload one package — Open HTML Courses, choose the intended storage folder and upload one ZIP. Wait for completion before beginning another upload.
  4. Preview and embed — Add the HTML Course Gutenberg block and select the package and display mode, or paste its generated shortcode into a page.
  5. Test before publishing — Open the course through the intended page and device sizes. The free tier supports two active packages; activate Pro or Agency for unlimited packages.

User guide

Open a section for the task you are completing.

Upload and manage packages

Upload a package

Choose the intended storage folder, then drag one ZIP into the upload area. The plugin uploads the archive in chunks, validates it, extracts it into its assigned folder and generates a slug from the package filename.

HTML, CSS, JavaScript, media and other package assets are preserved. A working index.html is required, and archives containing executable PHP files are rejected.

Replace an existing package

Uploading the same package identity replaces the earlier extracted version without changing its slug. Existing blocks and shortcodes continue to target the replacement, and the operation does not consume another free-tier slot.

Delete a package

Deleting removes its package record and extracted files and releases its free-tier slot. Check Package Usage first: blocks and shortcodes already placed in content are not removed automatically.

Display and appearance
Button / new tabDisplays a styled button that opens the package in a new browser tab.
Inline iframeEmbeds the package directly in the page with configurable width and height.
Lightbox overlayOpens the package over the current page with configurable dimensions, overlay colour and close-button theme.
Fullscreen popupLaunches a full-window course experience from a button.
Button appearanceInherit the active theme’s button style or use custom colours and border radius.

Appearance settings provide the defaults for new blocks. An individual block can override those defaults without changing existing embeds elsewhere.

Embed with the Gutenberg block

Add the block

Edit a page or post, add the HTML Course block, select an uploaded package and choose its display mode. Use the block settings for any per-embed text, size or appearance overrides.

Use with LearnDash

LearnDash is optional. When it is installed, place the same block inside a LearnDash lesson or topic as you would on any other WordPress page. LearnDash controls access and completion; the loader displays the package.

Embed with a shortcode

Use Copy Shortcode in the Package Manager or add the basic shortcode manually:

[hcu_course slug="your-package-slug"]

Optional attributes include mode, text, width, height, unit, overlay and theme. Prefer the generated shortcode when possible so the package slug is exact.

Find where a package is used

Package Usage scans WordPress content for both HTML Course blocks and [hcu_course] shortcodes. Each package lists its detected posts and pages, with direct edit links. Packages without a detected use are identified before deletion.

This is content-reference reporting, not learner activity or SCORM reporting.

Supported package sources
SourceStatusNotes
Articulate RiseTestedStandard web exports, including packages that contain SCORM or xAPI wrappers. Display is supported; tracking is not recorded.
BranchTrackTestedSelf-contained standard HTML package exports.
MindSmithTestedA narrow SCORM 1.2 compatibility stub is inserted automatically when the package requires it for browser display.
Other HTML toolsUsually compatibleThe ZIP must run from its own index.html without an unavailable hosted dependency.
EasygeneratorNot supportedKnown cloud and authentication dependencies prevent reliable self-hosted display.
Licence and data management

Free capacity

The free tier permits two active packages—not two lifetime uploads. Delete an unused package to release its slot, or replace an existing package without using another slot.

Paid licences

Pro enables unlimited active packages on one production site. Agency enables unlimited packages across up to ten production sites. Manage the key under HTML Courses → License.

Deactivation and deletion

Normal plugin deactivation retains settings, package records and uploaded content. Review the plugin’s Data Management options before requesting a comprehensive deletion.

Troubleshooting

The ZIP is rejected

Confirm the file has a .zip extension, contains a working index.html and does not contain PHP files. Re-export the package rather than renaming another archive format.

The upload sequence is incomplete or reports a network error

Upload only one package at a time and wait for the completion message. Check browser developer tools and host security logs for blocked AJAX or chunk requests. A server, proxy or CDN may impose a lower practical limit than the plugin’s 200MB package ceiling.

The package opens to a blank page

Open the browser console and check for missing assets, blocked remote dependencies or JavaScript errors. Confirm index.html is at the usable package entry point and that the export can run independently of its authoring service.

MindSmith reports that it cannot find an API adapter

Delete and re-upload the package. The loader inserts its narrow silent SCORM API compatibility stub during extraction when the relevant MindSmith package structure is detected.

A deleted package still appears on a page

Deletion removes the package files and record, not the block or shortcode in WordPress content. Edit the page listed in Package Usage and remove or replace the orphaned embed.

Developer notes

Rendering boundary: packages run inside isolated iframe-based display surfaces. The package remains responsible for its own internal HTML, CSS, JavaScript and responsive behavior.

Upload path: large archives use chunked upload and bounded filesystem operations. Actual capacity still depends on host request, disk-space and execution constraints.

Security: archives require an HTML entry point and executable PHP content is rejected. Extracted package folders are protected from directory browsing.

Learning data: the loader does not expose a SCORM API, LRS or completion interface. Do not build compliance or completion rules around package display alone.

Supported interface: the HTML Course block and documented [hcu_course] shortcode are the public embedding interfaces. Internal classes, options and storage records are implementation details.

Changelog

v1.0.14 — Current

~ Standardized translation strings and package metadata.
~ Added explicit output escaping and documented bounded streaming filesystem operations.
! Defined the free allowance as two active packages: deletion releases a slot and replacement does not consume another.

v1.0.13 — July 22, 2026

+ Chunked ZIP uploads for packages up to 200MB, subject to server limits.
+ Package Manager with preview, shortcode copy, deletion and protected storage folders.
+ Gutenberg block and shortcode embeds with Button, Inline Iframe, Lightbox and Fullscreen modes.
+ Package Usage reporting for Gutenberg blocks and [hcu_course] shortcodes.
+ Pro and Agency licensing for unlimited active packages.
! Improved settings persistence, storage-folder replacement and package-assignment detection.

Quick reference

WordPress6.7 or later; WordPress 7.0 tested
PHP8.1 or later; ZipArchive required
LearnDashOptional
PackageSelf-contained ZIP with a working index.html
Display modesButton/new tab, Inline Iframe, Lightbox Overlay and Fullscreen Popup
Shortcode[hcu_course slug="your-package-slug"]
FreeTwo active packages; deletion releases a slot and replacement preserves capacity
ProUnlimited active packages on one production site
AgencyUnlimited active packages on up to ten production sites
Licence managementHTML Courses → License
ProductView plans and download

Back to top ↑