Documentation

Remix Manager for H5P

Plugin Documentation – Version 1.0

1. Requirements

Before installing Remix Manager for H5P, ensure your site meets the following requirements.

RequirementDetails
WordPress5.4 or higher
PHP7.4 or higher
H5P PluginRequired – install the free H5P plugin from WordPress.org first
Frontend H5P EditorOptional – required only if you want front-end View and Edit links

2. Installation

Installing from WordPress.org

  1. Log in to your WordPress admin dashboard.
  2. Go to Plugins → Add New.
  3. Search for Remix Manager for H5P.
  4. Click Install Now on the plugin result, then click Activate.

Installing Manually

  1. Download the plugin ZIP file from WordPress.org or IndiEgg Studios.
  2. Go to Plugins → Add New → Upload Plugin.
  3. Choose the ZIP file and click Install Now.
  4. Click Activate Plugin.

The H5P plugin must be installed and active before Remix Manager for H5P will function. If H5P is not active, an admin notice will appear with instructions.

3. Settings

After activation, go to Settings → H5P Remix Manager in your WordPress admin. The settings page has two sections.

3.1 Role Permissions

This section displays a matrix of every role registered on your site, including custom roles like Teacher or Instructor, with four configurable columns:

ColumnDescription
Base AccessWhether users of this role can see the front-end library at all. Users without this permission see a “no access” message instead of the library.
Can RemixWhether users of this role can duplicate H5P items. Without this permission, the Remix button and bulk Remix action are blocked.
Can DeleteWhether users of this role can delete H5P items. Without this permission, the Delete button and bulk Delete action are blocked.
Max Items (0 = No limit)The maximum number of H5P items a user of this role may have in their library. Set to 0 for no limit. When the limit is reached, remix actions are blocked with a notice.

3.2 Library Link Behavior

This section controls where the View and Edit links in the library table send users. Each link has its own independent setting with three options:

OptionBehavior
Admin backend (default)Links go to the standard WordPress admin H5P pages. This is the default and requires users to have admin access or equivalent.
Frontend H5P Editor pagesLinks go to the pages configured in the Frontend H5P Editor companion plugin. An inline notice shows the resolved page name, or a warning if the companion plugin is not configured.
Custom URLLinks are built from a URL template you provide. Use %h5p_id% and %h5p_title% as dynamic tokens. See Section 3.3 below.

3.3 Custom URL Tokens

When you select Custom URL for a link, you enter a URL template in the text field that appears. Two tokens are available:

TokenReplaced With
%h5p_id%The numeric ID of the H5P content item (e.g. 33)
%h5p_title%The URL-encoded title of the H5P content item (e.g. My%20Quiz)

Example template:
https://example.com/h5p-viewer/?id=%h5p_id%&title=%h5p_title%

Both tokens can be used together or separately. If the custom URL field is left blank, links fall back to the admin backend URL.

4. Setting Up the Library Page

The front-end library is displayed using a single shortcode. You can place it on any WordPress page.

  1. Create a new page in WordPress (e.g. “My H5P Library”).
  2. Add the shortcode [rmh5p_user_library] to the page content.
  3. Publish the page.
  4. Link to this page from your site navigation, user dashboard, or wherever makes sense for your setup.

The library table shows the following columns for each content item:

  • Title: the H5P content title
  • Type: the H5P content type (e.g. Quiz, Course Presentation)
  • H5P ID: the numeric content ID
  • Last Modified: date and time the item was last updated
  • Actions: View, Edit, Remix, and Delete links

Above the table, users can search by title and filter by content type. Sorting is available on all columns. Results are paginated at 20 items per page.

5. User Actions

5.1 View

Opens the H5P content viewer for the selected item. The destination depends on the View link setting in Settings → H5P Remix Manager.

5.2 Edit

Opens the H5P editor for the selected item. The destination depends on the Edit link setting in Settings → H5P Remix Manager. Users can only edit content they own; attempting to edit another user’s content is blocked.

5.3 Remix

Creates a full duplicate of the selected H5P item and adds it to the user’s library. The remix process:

  • Copies the content row in the database with a new title (original title + ” (Remix)”)
  • Copies all library dependency records so the new item renders correctly immediately
  • Copies the on-disk media folder so all images, audio, and video files are available
  • Clears the cached parameters so H5P rebuilds them with the correct new content ID

Remix is subject to the Max Items limit set for the user’s role. If the limit would be exceeded, the action is blocked with a notice.

5.4 Delete

Permanently removes the selected H5P item. The delete process:

  • Deletes the content row from the database
  • Deletes all library dependency records for the item
  • Deletes all stored user data and results for the item
  • Deletes the on-disk media folder (wp-content/uploads/h5p/content/[id]/) and all files within it

Deletion is permanent and cannot be undone. Users are shown a confirmation dialog before any delete action proceeds.

5.5 Bulk Actions

Users can select multiple items using the checkboxes and apply Remix or Delete to all selected items at once using the Bulk Actions dropdown above the table.

6. Frontend H5P Editor Integration

Remix Manager for H5P is designed to work with the Frontend H5P Editor companion plugin. When both plugins are active and configured, View and Edit links in the library table are automatically rewritten to point to your front-end pages.

Setup

  1. Install and activate Frontend H5P Editor.
  2. Go to Settings → Frontend H5P Editor.
  3. Create WordPress pages for View, Create, and Edit, place the appropriate shortcode on each, and select them in the settings.
  4. Return to Settings → H5P Remix Manager → Library Link Behavior.
  5. Set the View and/or Edit link mode to Frontend H5P Editor pages.
  6. The library table will now use your configured front-end pages for those links.

Filter Hooks for Developers

If you are building your own front-end editor integration, Remix Manager for H5P exposes two filter hooks:

HookDescription
rmh5p_view_urlFilters the View link URL. Receives
$url (string) and $content_id (int). Return a modified URL.
rmh5p_edit_urlFilters the Edit link URL. Receives
$url (string) and $content_id (int). Return a modified URL.
rmh5p_create_urlFilters the Create URL (used by companion plugins). Receives $url (string). Return a modified URL.

7. Frequently Asked Questions

Do I need the H5P plugin installed?

Yes. Remix Manager for H5P extends the H5P plugin and cannot function without it. If H5P is not active, an admin notice will appear.

What does “Remix” mean?

Remix creates a full duplicate of an H5P content item, including all media files and library dependencies, so the user can customize it without altering the original.

Why do complex content types like Arithmetic Quiz work correctly after remixing?

The plugin copies the library dependency cache (h5p_contents_libraries table) as part of the remix process. Without these rows H5P does not know which JavaScript and CSS libraries to load for a given content item, causing blank pages on content types that have multiple dependencies. Simple types like Essay have only one dependency and appear to work without this cache; complex types require it.

What happens to files when I delete an item?

The plugin deletes the entire content folder at wp-content/uploads/h5p/content/[id]/ including all uploaded images, audio, video, and document files associated with that item, in addition to removing all database records.

Can users edit H5P content that belongs to someone else?

No. Both the single-item Edit link and the bulk Edit action verify ownership before proceeding. If a user attempts to edit content they do not own, the action is blocked. If they want a customised version of someone else’s content, they can use Remix to create their own copy first.

What does Max Items = 0 mean?

Zero means no limit. Users of that role can have as many H5P items in their library as they like.

Can I limit only remixing, not total items?

The Max Items setting applies to the total number of items in the library, enforced at the point of remixing. There is no separate limit on how many times an item can be remixed, only on the total library size.

What happens if I select “Frontend H5P Editor pages” but that plugin is not configured?

The settings page shows a warning notice, and the links fall back to the admin backend URL silently. No broken links are generated.

Does this plugin work with custom user roles?

Yes. The permissions matrix is built dynamically from all roles registered on your site using wp_roles(). Any custom role (such as Teacher, Instructor, or Student) will appear automatically.

Is there a shortcode for creating new H5P content from the front end?

Creating H5P content from the front end requires the Frontend H5P Editor companion plugin, which provides a [fhe_create] shortcode for this purpose.

8. Changelog

Version 1.0

  • Initial release
  • Front-end library with View, Edit, Remix, and Delete actions
  • Full remix duplication – copies database rows, library dependencies, and on-disk media folder
  • Full delete cleanup – removes database rows, library dependencies, user data, results, and media folder
  • Role-based permissions matrix with support for custom roles
  • Maximum library size limits per role
  • Library link behavior settings for View and Edit links (admin, Frontend H5P Editor, or custom URL with tokens)
  • Bulk actions for Remix and Delete
  • Search, filter, sort, and pagination
  • Filter hooks for third-party integration: rmh5p_view_url, rmh5p_edit_url, rmh5p_create_url

If this plugin has saved you time, consider buying me a coffee. It helps support continued development.

Remix Manager for H5P is developed by IndiEgg Studios – indiegg.com