Developer Resources Estimated reading: 2 minutes 3 views Summary: This guide provides developers with insights into the EazyLMS architecture, including data models, REST API usage, and best practices for extending the core functionality within a WordPress environment. As a developer working with EazyLMS, understanding the plugin’s architecture is essential for building custom integrations, extending functionality, or creating site-specific overrides. EazyLMS is designed as a powerful add-on for EazyDocs, leveraging existing post structures to turn documentation into a full-fledged Learning Management System. Plugin Architecture and Data Model EazyLMS does not register its own custom post type. Instead, it hooks into the docs post type registered by EazyDocs. The system determines the role of a post based on its depth in the hierarchy: top-level pages (depth 0) serve as courses, while nested items function as modules and lessons. Data is stored entirely within WordPress post meta, ensuring high performance and native compatibility. Course-Level Meta: Stores enrollment records, pricing configuration, and capacity limits. Lesson-Level Meta: Tracks student completion and defines the content type (e.g., article, quiz, or video). WooCommerce Integration: Paid courses map directly to WooCommerce product IDs, allowing for automated enrollment workflows upon successful payment. Extending EazyLMS For developers looking to modify the behavior of the plugin, the codebase is modular and well-documented. You can easily adjust the rendering pipeline or hook into the AJAX endpoints for custom progress tracking. Refer to How to Add Category Filters and Customize Search in Docy to modify the visual display of your course pages without altering the core plugin files. REST API and Admin React App The EazyLMS admin dashboard is built as a React-powered Single Page Application (SPA). The communication between the frontend interface and the WordPress backend is handled through secure REST API endpoints. You can leverage these endpoints to build custom student dashboards or integrate third-party data reporting tools. For more details on interacting with the data, review the guide on . Key Technical Constants When writing custom extensions, ensure you are utilizing the defined constants for directory paths and asset loading. Using these constants prevents issues with plugin updates and maintains compatibility across different hosting environments: // Example of accessing EazyLMS asset directory $image_path = EAZYLMS_IMG . '/icon-certificate.svg'; By following these development patterns, you can ensure that your customizations remain stable and functional as you continue to build out your learning platform. ArticlesPlugin Directory Structure Working with REST API Template Overrides Tagged:APICustomizationDeveloper Developer Resources - PreviousAccess Control SettingsNext - Developer ResourcesPlugin Directory Structure