WP Manifestindependent plugin directory
manifest / content / learnkit

LearnKit WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA

Modern WordPress LMS plugin for course creators who value simplicity, performance, and fair pricing. Create, deliver, and monetize online courses with a beautiful, intuitive interface.

★ 1stars
59release downloads
v0.9.5latest · 7mo ago

Install

Download learnkit-0.9.5.zip From the v0.9.5 release on GitHub, Feb 28, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/welbinator/learnkit/releases/download/v0.9.5/learnkit-0.9.5.zip
Updates itself. It ships its own updater, so new versions appear under Dashboard → Updates.

LearnKit - WordPress LMS Plugin

Modern WordPress LMS plugin for course creators who value simplicity, performance, and fair pricing.

Overview

LearnKit is a lightweight, performant WordPress Learning Management System (LMS) plugin built with modern standards and developer-friendly architecture. Create, deliver, and monetize online courses with a beautiful, intuitive interface.

Features (Sprint 1 - Foundation)

  • ✅ Custom Post Types: Courses, Modules, Lessons
  • ✅ Custom Database Tables: Enrollments, Progress, Certificates
  • ✅ REST API: Complete API-first architecture (/wp-json/learnkit/v1/)
  • ✅ React Admin Interface: Modern course builder UI
  • ✅ WordPress Standards: WPCS compliant, security-focused
  • ✅ Mobile-First: Responsive design throughout

Installation

Development Setup

  1. Clone repository:

    cd wp-content/plugins/
    git clone https://github.com/welbinator/learnkit.git
  2. Install React dependencies:

    cd learnkit/admin/react/
    npm install
    npm run build
  3. Activate plugin:

    • Go to WordPress Admin → Plugins
    • Activate "LearnKit"
    • Database tables will be created automatically

Production Installation

  1. Download latest release from GitHub
  2. Upload to wp-content/plugins/
  3. Activate via WordPress admin
  4. Configure settings (coming in Sprint 5)

Requirements

  • WordPress: 6.0 or higher
  • PHP: 7.4 or higher
  • MySQL: 5.6 or higher
  • Node.js: 18+ (for development)

Architecture

Plugin Structure

learnkit/
├── learnkit.php              # Main plugin file
├── includes/                  # Core classes
│   ├── class-learnkit.php            # Main plugin class
│   ├── class-learnkit-activator.php  # Activation hooks
│   ├── class-learnkit-loader.php     # Hook loader
│   ├── class-learnkit-post-types.php # CPT registration
│   └── class-learnkit-rest-api.php   # REST API endpoints
├── admin/                     # Admin functionality
│   ├── class-learnkit-admin.php      # Admin class
│   └── react/                         # React app source
│       ├── src/
│       ├── package.json
│       └── webpack.config.js
├── public/                    # Public-facing functionality
│   └── class-learnkit-public.php
├── assets/                    # Compiled assets
│   ├── css/
│   └── js/
└── README.md

Custom Post Types

  • lk_course: Course content (hierarchical)
  • lk_module: Module organization within courses
  • lk_lesson: Individual lesson content (uses Gutenberg)

Custom Database Tables

-- Enrollment tracking
wp_lk_enrollments (user_id, course_id, status, enrolled_date, completed_date)

-- Progress tracking
wp_lk_progress (user_id, lesson_id, course_id, completed, completed_date)

-- Certificate management
wp_lk_certificates (user_id, course_id, certificate_code, issued_date)

REST API Endpoints

Namespace: /wp-json/learnkit/v1/

Courses:

  • GET /courses - List all courses
  • GET /courses/:id - Get single course
  • POST /courses - Create course (requires edit_posts)
  • PUT /courses/:id - Update course
  • DELETE /courses/:id - Delete course

Modules:

  • GET /modules - List modules (Sprint 2)

Lessons:

  • GET /lessons - List lessons (Sprint 2)

Enrollments:

  • GET /enrollments - List enrollments (Sprint 3, admin only)

Progress:

  • GET /progress - Get user progress (Sprint 3, authenticated)

React Admin Interface

  • Build Tool: @wordpress/scripts (webpack + babel)
  • UI Components: @wordpress/components
  • State Management: React hooks
  • API Integration: WordPress REST API with nonce authentication

Development

Code Quality Tools

# Install dependencies
composer install

# Run PHP Code Sniffer
composer phpcs

# Auto-fix PHP Code Sniffer issues
composer phpcbf

# Run PHP Mess Detector
composer phpmd

# Run all linting tools
composer lint

# Run PHPUnit tests
composer test

The project includes:

  • PHPCS: WordPress Coding Standards enforcement
  • PHPMD: Code complexity and quality analysis
  • PHPUnit: Automated testing suite
  • Pre-commit hooks: Automatic code quality checks

See CONTRIBUTING.md for detailed development workflow.

React Development Workflow

# Navigate to React app
cd admin/react/

# Install dependencies
npm install

# Start development server (hot reload)
npm start

# Build for production
npm run build

# Lint code
npm run lint:js
npm run lint:css

# Format code
npm run format

WordPress Development

The plugin follows WordPress Coding Standards (WPCS):

  • PSR-4 Autoloading: Class-based architecture
  • Hook System: Loader pattern for actions/filters
  • Security: Nonces, capability checks, sanitization, escaping
  • Performance: Efficient queries, custom tables for scale
  • i18n Ready: All strings translatable

Testing the Plugin

  1. Activate plugin in WordPress admin
  2. Check database tables:
    SHOW TABLES LIKE 'wp_lk_%';
  3. Test REST API:
    curl https://learnkit.lndo.site/wp-json/learnkit/v1/courses
  4. Access admin interface:
    • Go to WordPress Admin → LearnKit
    • Should see React app with API connection test

Sprint Roadmap

✅ Sprint 1: Foundation & Plugin Architecture (Complete)

  • Plugin structure and activation
  • Custom post types (courses, modules, lessons)
  • Custom database tables (enrollments, progress, certificates)
  • REST API foundation
  • React build pipeline
  • Admin menu structure

🔄 Sprint 2: Course Builder Basics (Next)

  • Course CRUD interface
  • Module management
  • Lesson management
  • Course structure tree view
  • Drag-and-drop reordering

📋 Sprint 3: Content Delivery

  • Lesson viewer (student-facing)
  • Progress tracking
  • Module sidebar navigation
  • Mark Complete functionality
  • Enrollment system

📋 Sprint 4: Student Experience Basics

  • Student dashboard
  • Course catalog
  • Self-enrollment flow
  • Certificate generator
  • Progress indicators

📋 Sprint 5+: Advanced Features

  • Quizzes and assessments
  • WooCommerce integration
  • Email notifications
  • Drip content scheduling
  • Reporting and analytics

Code Quality

Security Best Practices

  • ✅ Input sanitization (sanitize_text_field, wp_kses_post)
  • ✅ Output escaping (esc_html, esc_url, esc_attr)
  • ✅ Nonce verification for forms and AJAX
  • ✅ Capability checks (current_user_can)
  • ✅ Prepared SQL statements ($wpdb->prepare)

Performance Optimizations

  • ✅ Custom tables for scalable data (enrollments, progress)
  • ✅ Efficient queries (indexed columns)
  • ✅ Conditional asset loading (only on relevant pages)
  • ✅ Lazy loading for React components (Sprint 2+)

Contributing

  1. Fork the repository
  2. Create feature branch: git checkout -b feature/my-feature
  3. Commit changes: git commit -m "Add feature"
  4. Push to branch: git push origin feature/my-feature
  5. Submit pull request

Coding Standards

  • Follow WordPress Coding Standards
  • Use npm run format for JavaScript
  • Document all functions with PHPDoc
  • Write unit tests for new features (Sprint 2+)

Support

  • Documentation: [Coming in Sprint 4]
  • Issues: GitHub Issues
  • Email: james.welbes@gmail.com

License

GPL v2 or later

Credits

Built by James Welbes


Status: Sprint 1 Complete ✅ | Next: Sprint 2 Course Builder

Releases

Newest 25 of 27 recorded releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v0.9.5 latest
Feb 28, 2026 7mo ago
learnkit-0.9.5.zip
3
Feb 27, 2026 7mo ago
learnkit-0.9.4.zip
1
Feb 27, 2026 7mo ago
learnkit-0.9.3.zip
2
Feb 27, 2026 7mo ago
learnkit-0.9.2.zip
2
Feb 26, 2026 7mo ago
learnkit-0.9.1.zip
4
Feb 26, 2026 8mo ago
learnkit-0.9.0.zip
7
Feb 26, 2026 8mo ago
learnkit-0.9.0-beta.1.zip
2
Feb 26, 2026 8mo ago
learnkit-0.8.8.zip
2
Feb 25, 2026 8mo ago
learnkit-0.8.7.zip
0
Feb 25, 2026 8mo ago
learnkit-0.8.7-beta.1.zip
2
Feb 25, 2026 8mo ago
learnkit-0.8.6.zip
1
Feb 25, 2026 8mo ago
learnkit-0.8.5.zip
1
Feb 25, 2026 8mo ago
learnkit-0.8.4.zip
2
Feb 25, 2026 8mo ago
learnkit-0.8.3.zip
1
Feb 25, 2026 8mo ago
learnkit-0.8.2.zip
1
Feb 25, 2026 8mo ago
learnkit-0.8.1.zip
2
Feb 25, 2026 8mo ago
learnkit-0.7.3.zip
2
Feb 25, 2026 8mo ago
learnkit-0.7.2.zip
5
Feb 24, 2026 8mo ago
learnkit-0.7.1.zip
5
Feb 24, 2026 8mo ago
learnkit-0.7.0.zip
1
Feb 24, 2026 8mo ago
learnkit-0.6.1.zip
1
Feb 23, 2026 8mo ago
learnkit-0.6.0.zip
5
Feb 23, 2026 8mo ago
learnkit-0.5.4.zip
1
Feb 23, 2026 8mo ago
learnkit-0.5.3.zip
1
Feb 23, 2026 8mo ago
learnkit-0.5.2.zip
1
All releases on GitHub →
A grade

Security

LearnKit 0.9.5 · audited by WP Registry

No security issues found.

Audited release
0.9.5
Findings
none
Worst severity
—
Content hash
12796146f7f8091ef287a527…

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.