WP Manifestindependent plugin directory
manifest / integrations / tutor-dashboard-modules

Tutor Dashboard Modules

Modular student dashboard endpoints for Tutor LMS managed from WordPress admin.

by Booming · github.com/webloti/tutor-dashboard-modules

★ 0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/webloti/tutor-dashboard-modules/archive/refs/heads/main.zip

Tutor Dashboard Modules is a WordPress plugin that extends the Tutor LMS student dashboard with admin-managed modules, without relying on theme hacks or fragile template overrides.

Each module is managed as its own entity inside Tutor LMS Pro > Tutor Modules and can render content from Elementor, shortcodes, internal PHP views, or WooCommerce account endpoints.

What It Solves

In many Tutor LMS projects, dashboard customizations end up scattered across:

  • snippets in functions.php
  • theme-level template overrides
  • isolated WooCommerce logic
  • custom endpoints that are hard to maintain

This plugin centralizes that work in a reusable modular layer so you can:

  • create new dashboard tabs
  • control who can see them
  • choose where they appear
  • embed them inside native Tutor pages
  • render dynamic content through a structured architecture

Core Capabilities

Admin-managed modules

Each dashboard tab or view is stored as a module with its own configuration:

  • title
  • endpoint slug
  • icon
  • order
  • status
  • audience
  • visibility rules
  • content type
  • fallback behavior
  • navigation mode

Two navigation modes

Each module can work in one of two ways:

  • Standalone Menu Item

    • appears as its own item in the Tutor dashboard sidebar
    • has its own dashboard URL
  • Embedded Inside Native Tutor Page

    • does not appear as a standalone sidebar item
    • is shown as an internal tab inside a native Tutor page such as purchase_history
    • keeps the native Tutor page as the first tab

This makes it possible to keep Purchase History as the native sidebar item while adding another internal tab such as Orders inside the same page.

Real Tutor LMS integration

The plugin integrates with Tutor through the dashboard hook system for:

  • navigation
  • permalinks
  • routing
  • template loading

It does not require changes to:

  • the theme
  • functions.php
  • manual Tutor template overrides

Supported Content Types

The plugin currently supports:

  • elementor_template
  • shortcode
  • php_view
  • woocommerce_endpoint

It also exposes architecture for developer-registered integrations:

  • custom_callback
  • dynamic_data_view

WooCommerce Endpoints

The woocommerce_endpoint content type lets you render WooCommerce account endpoints inside the Tutor dashboard.

Supported endpoints:

  • orders
  • downloads
  • edit-account
  • edit-address
  • payment-methods
  • add-payment-method

Render modes

Depending on the endpoint, the admin can choose between:

  • hybrid
  • native_tutor
  • custom

For orders and downloads, the plugin includes layouts designed to feel more aligned with Tutor LMS.

Orders improvements

The orders module already supports:

  • an action column across all render modes
  • same-page order details inside the dashboard
  • a modern compact layout
  • product or course cover images when available
  • inherited filters and pagination when embedded inside purchase_history

Elementor Support

Modules using elementor_template can render an Elementor template directly inside the Tutor dashboard.

The admin UI includes:

  • searchable template picker by name
  • cached selected label
  • stable admin preview behavior where appropriate

This is useful for:

  • resource hubs
  • visual dashboards
  • listing-driven content blocks
  • JetEngine/Crocoblock-powered layouts via Elementor

Presets, Duplicate, and Import / Export

The plugin includes admin tools to speed up setup.

Presets

You can create starter modules from presets such as:

  • Downloads
  • Orders
  • Resources
  • Subscriptions
  • External Tool
  • Community

Duplicate

From the modules list you can duplicate a module and create a new draft copy.

Import / Export

You can also:

  • export one or more modules to JSON
  • import modules from JSON without overwriting existing entries

Visibility Rules

In addition to the base audience, a module can be restricted by:

  • purchased WooCommerce product
  • Tutor course enrollment

Validation applies to:

  • menu visibility
  • direct URL access

Module Placement

Standalone modules support two placement levels:

Global placement

From Module Settings, you define the global default placement for modules that keep Default Position.

Per-module placement

Each standalone module can either:

  • use Default Position
  • choose a specific placement in the Tutor menu

If a module uses a specific placement, it overrides the global one.

Embedded modules ignore standalone menu placement and use their selected native Tutor parent page instead.

Reactive Preview

The module editor includes a preview area that updates automatically as you change the configuration, without requiring a save for every adjustment.

This helps validate:

  • WooCommerce layouts
  • PHP views
  • visual configuration choices

For module types where admin preview can compromise editor stability, the plugin safely degrades the preview behavior.

Production Performance

The plugin is designed to avoid global frontend overhead:

  • frontend assets are scoped to Tutor dashboard screens that can render a module
  • module lists are cached per request and through versioned WordPress object-cache keys
  • standalone and embedded module lookups are cached during the request
  • visibility rules for purchases and enrollments are cached during the request
  • module render timing is measured only when debug mode is enabled
  • slow-render logs are disabled by default in normal production traffic

The most expensive module types are usually Elementor templates and third-party shortcodes. For production sites, keep those templates focused, paginate data-heavy WooCommerce views, and enable performance debug only while diagnosing a slow dashboard screen.

Performance Debugging

Module Settings includes a performance debug option. When enabled, the plugin logs module renders that exceed the configured threshold.

Recommended usage:

  • keep debug disabled during normal production use
  • enable it temporarily when a dashboard screen feels slow
  • inspect the recent logs or WooCommerce logger output when WooCommerce logging is available
  • disable it again after diagnosing the slow module

The static production checks can be run without a WordPress test database:

php tests/static-production-checks.php

Admin Experience

Main management lives in:

  • Tutor LMS Pro > Tutor Modules
  • Tutor LMS Pro > Module Settings

Module Settings groups:

  • general shared settings
  • presets
  • import tools

Hooks and Extensibility

The plugin exposes several filters and extension points so developers can extend the system without editing core:

  • tdm/register_module_types
  • tdm/register_renderers
  • tdm/register_php_views
  • tdm/register_callbacks
  • tdm/register_dynamic_providers
  • tdm/register_module_presets
  • tdm/module_is_visible
  • tdm/module_visibility_result
  • tdm/module_dependencies_status
  • tdm/module_before_render
  • tdm/module_after_render
  • tdm/module_render_result
  • tdm/woocommerce_downloads_data
  • tdm/elementor_template_output
  • tdm/module_fallback_message
  • tdm/embedded_tabs

Project Structure

  • tutor-dashboard-modules.php
  • src/Admin/ admin UI, module list, settings, and editor
  • src/Infrastructure/ repository, persistence, validation, and rewrites
  • src/Tutor/ Tutor dashboard integration
  • src/Rendering/ renderers and rendering pipeline
  • src/Integration/WooCommerce/ providers and WooCommerce endpoint logic
  • src/Integration/Elementor/ Elementor bridge
  • templates/ frontend module templates and wrappers
  • assets/ admin and frontend assets
  • docs/ implementation notes and manual test plan

Current Plugin Version

Current plugin version: 0.2.0

The current version already supports:

  • standalone modules and modules embedded inside native Tutor pages
  • production hardening for recent Tutor LMS/Tutor Pro dashboard hook behavior
  • scoped frontend assets and request-level visibility/cache optimizations
  • optional slow-render diagnostics
  • WooCommerce endpoints with multiple render modes
  • Elementor-based modules
  • internal PHP view modules
  • presets, duplicate, import/export
  • visibility rules
  • reactive preview
  • Tutor-style fallback states

Additional Documentation

Practical Requirements

Recommended environment for the full feature set:

  • Tutor LMS
  • Tutor LMS Pro
  • WooCommerce
  • Elementor

The plugin degrades safely when optional integrations are missing, but some module types will show fallback states instead of live content.

Notes

custom_callback and dynamic_data_view are still intended as developer-oriented extension points rather than end-user-first content modes.