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.
index.html. Content that depends on an authoring platform login or inaccessible hosted assets is not supported.Requirements
| WordPress | 6.7 or later; WordPress 7.0 tested |
| PHP | 8.1 or later with the ZipArchive extension |
| Package format | Self-contained ZIP containing a working index.html |
| Maximum package size | Up to 200MB, subject to hosting and server limits |
| LearnDash | Optional; the loader operates independently |
| Free tier | Up to two active packages. Deleting a package releases its slot; replacing an existing package does not consume another slot. |
Quick start
- Install and activate — Upload the plugin ZIP through Plugins → Add New. Confirm PHP 8.1+ and ZipArchive are available.
- Export a web package — Create a self-contained ZIP with a working
index.htmlfrom Articulate Rise, BranchTrack, MindSmith or another compatible authoring tool. - Upload one package — Open HTML Courses, choose the intended storage folder and upload one ZIP. Wait for completion before beginning another upload.
- Preview and embed — Add the HTML Course Gutenberg block and select the package and display mode, or paste its generated shortcode into a page.
- 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 tab | Displays a styled button that opens the package in a new browser tab. |
| Inline iframe | Embeds the package directly in the page with configurable width and height. |
| Lightbox overlay | Opens the package over the current page with configurable dimensions, overlay colour and close-button theme. |
| Fullscreen popup | Launches a full-window course experience from a button. |
| Button appearance | Inherit 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
| Source | Status | Notes |
|---|---|---|
| Articulate Rise | Tested | Standard web exports, including packages that contain SCORM or xAPI wrappers. Display is supported; tracking is not recorded. |
| BranchTrack | Tested | Self-contained standard HTML package exports. |
| MindSmith | Tested | A narrow SCORM 1.2 compatibility stub is inserted automatically when the package requires it for browser display. |
| Other HTML tools | Usually compatible | The ZIP must run from its own index.html without an unavailable hosted dependency. |
| Easygenerator | Not supported | Known 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
~ 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.
+ 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
| WordPress | 6.7 or later; WordPress 7.0 tested |
| PHP | 8.1 or later; ZipArchive required |
| LearnDash | Optional |
| Package | Self-contained ZIP with a working index.html |
| Display modes | Button/new tab, Inline Iframe, Lightbox Overlay and Fullscreen Popup |
| Shortcode | [hcu_course slug="your-package-slug"] |
| Free | Two active packages; deletion releases a slot and replacement preserves capacity |
| Pro | Unlimited active packages on one production site |
| Agency | Unlimited active packages on up to ten production sites |
| Licence management | HTML Courses → License |
| Product | View plans and download |
