CourseTransit is a WooCommerce + Moodle integration plugin for WordPress that helps sync Moodle courses into WooCommerce products and automate enrollment workflows after purchase.
It is designed for online course businesses that want to:
- Sell Moodle courses through WooCommerce
- Sync Moodle courses into WordPress
- Manage instructors and enrollments
- Automate course access after successful orders
- Monitor order activity from the WordPress admin
- Connect WordPress with Moodle using the dedicated CourseTransit Moodle plugin
- Generate secure connection tokens directly from the CourseTransit Moodle plugin
- Sync Moodle courses into WordPress
- Automatically create and link WooCommerce products during course synchronization
- Automatic enrollment after WooCommerce purchase
- Attach Moodle courses to WooCommerce products
- Detect CourseTransit-enabled products in orders
- Process enrollments after successful payment
- Compatible with WooCommerce order lifecycle
- Custom admin dashboard built with Bootstrap/Shards UI
- Course overview and statistics
- Order insights
- Centralized plugin management panel
- Sync and manage Moodle courses
- View synced course records
- Associate courses with WooCommerce products
- Manage course metadata
- Instructor listing and management
- Instructor-course relationships
- Admin-side management workflow
- Custom email template support
- Enrollment-related email handling
- Centralized email configuration
- Internal logging system
- Debug support using WordPress debug mode
- Enrollment and API troubleshooting support
- WordPress 6.0+
- PHP 7.4+
- WooCommerce installed and activated
- Moodle with the CourseTransit Moodle plugin installed
- Latest stable WooCommerce version
- PHP 8.1+
- HTTPS-enabled website
- WordPress
- WooCommerce
- Moodle
- CourseTransit Moodle Plugin
- Download the plugin ZIP.
- Go to WordPress Admin → Plugins → Add New.
- Upload the plugin ZIP.
- Activate the plugin.
- Ensure WooCommerce is already installed and active.
Clone or copy the plugin into:
wp-content/plugins/coursetransitActivate the plugin from the WordPress admin.
CourseTransit includes a dedicated Moodle plugin that simplifies the connection process between Moodle and WordPress.
The Moodle plugin provides:
- Secure token generation
- WordPress website registration
- Moodle-to-WordPress communication
- Course synchronization support
- Centralized integration management
After installing the Moodle plugin:
- Register the WordPress website from Moodle
- Generate the secure integration token automatically
- Connect the WordPress plugin using the generated token
- Start syncing courses
You will need:
- Moodle Site URL
- CourseTransit integration token
After activation:
- Open:
WordPress Admin → CourseTransit
- Configure:
- Moodle URL
- CourseTransit Web Service Token
- Email settings
-
Save settings.
-
Test Moodle connection.
The plugin can fetch Moodle courses and automatically create linked WooCommerce products inside WordPress.
Typical workflow:
- Connect Moodle
- Run course sync
- Courses appear in CourseTransit admin panel
- WooCommerce products are automatically created and linked
- Course mappings are stored automatically
During synchronization, CourseTransit can automatically create WooCommerce products for Moodle courses.
The plugin automatically stores Moodle course relationships against WooCommerce products during synchronization.
Manual product mapping can still be used when needed.
When a customer purchases the linked product, the plugin processes Moodle enrollment automatically.
- Customer purchases a WooCommerce product
- WooCommerce order is completed/processed
- CourseTransit detects the mapped Moodle course
- Moodle API enrollment request is sent
- User receives access to the Moodle course
Overview of:
- Orders
- Course statistics
- Enrollment information
- Activity summaries
Manage synced Moodle courses.
Manage instructor records and mappings.
View CourseTransit-related WooCommerce orders.
Manage enrollment email templates.
Configure Moodle connection.
coursetransit/
├── app/
│ ├── Controllers/
│ ├── Emails/
│ ├── Helpers/
│ ├── Models/
│ ├── Services/
│ ├── Support/
│ └── Views/
├── assets/
├── bootstrap/
├── languages/
├── coursetransit.php
└── uninstall.php
Handles Moodle API communication.
Processes Moodle enrollments.
Handles syncing Moodle courses into WordPress.
Adds CourseTransit fields to WooCommerce products.
The plugin stores:
- Synced courses
- Instructor information
- Plugin settings
- Email templates
- Enrollment/order-related metadata
Custom tables may be created during plugin installation.
The plugin includes:
- Nonce verification
- Sanitization and escaping
- WooCommerce dependency checks
- Safe AJAX handling
- WordPress coding standards improvements
The uninstall routine can remove:
- Plugin options
- Custom database tables
- Stored plugin data
Always back up your database before uninstalling.
Enable WordPress debugging:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);Logs may help diagnose:
- Moodle connection failures
- Enrollment issues
- Sync errors
- WooCommerce integration problems
The plugin follows WordPress coding standards and is actively being improved for:
- PHPCS compliance
- Plugin Check compatibility
- Sanitization/security improvements
- Performance optimization
Yes. WooCommerce must be installed and activated.
Yes. A Moodle site with the CourseTransit Moodle plugin installed is required.
Yes. Different WooCommerce products can map to different Moodle courses.
Yes. Enrollment is triggered after WooCommerce order processing.
Check:
- Moodle URL
- CourseTransit integration token
- CourseTransit Moodle plugin installed correctly
- Integration token is valid
- Website registration completed
Check:
- WooCommerce order status
- Product-course mapping
- CourseTransit token permissions
- Debug logs
Check:
- CourseTransit Moodle plugin connection
- Integration token validity
- Website registration status
- Server timeouts
-
Improved: Course synchronization reliability and overall plugin stability.
-
Fixed: Minor compatibility, security, and performance issues.
- Sync WooCommerce billing address to Moodle user profile
- Added: Demo Mode notice on the Select & Sync Courses screen to explicitly indicate that listed courses are dummy data for demonstration and testing purposes only.
- Added: Optional admin consent notice for receiving setup tips, changelog notifications, and license updates.
- Added: Consent preferences are only saved after an explicit admin action.
- Improved: Plugin stability and compatibility with the latest WordPress version.
- Improved: Code quality and WordPress Coding Standards compliance.
- Fixed: Minor bugs and performance improvements.
- Added dedicated Logs viewer in Settings with searchable DataTable and per-entry context viewer
- Added configurable log enable/disable toggle in Settings
- Added WooCommerce setup checklist modal shown automatically when required account settings are not configured
- Added default enrollment period selector in Settings (Sync tab)
- Added individual course re-sync support
- Fixed enrollment email template body not loading when switching between New User and Existing User templates
- Fixed email template admin preview showing stub body instead of full default template
- Improved enrollment email default template with richer HTML
- Refactored dashboard view
- Refactored Settings page into tabbed layout: General, Sync, and Logs
- Refactored CourseSyncService with chunked sync support and improved single-course sync
- Removed unused vendor folder and Composer dependencies
- Initial public release
- Moodle course synchronization
- WooCommerce product integration
- Automatic student enrollment after purchase
- Instructor management
- Enrollment email template customization
- Unified order and enrollment dashboard
- Activity logging and connection testing
GPL v3 or later
This plugin is licensed under the GNU General Public License v3.0.
JustAddWater
Website: https://justaddwater.in/