If you run Moodle for your courses and WordPress for your website, you’ve probably hit the same wall many course creators do: there’s no simple, native way to sell your Moodle courses through WordPress and enroll students automatically. You either enroll people by hand, pay for expensive custom development, or juggle two disconnected systems.
In this guide, we’ll show you how we connect the two platforms using CourseTransit, a free WordPress-Moodle integration plugin. Once set up, a customer buys a course on your WordPress site through WooCommerce, and CourseTransit automatically creates their Moodle account and enrolls them, the moment the order completes.
Why Connect Moodle and WordPress?
Each platform is great at one thing. Moodle handles course delivery, quizzes, grades, and certificates. WordPress handles your website, marketing, SEO, and payments through WooCommerce. The problem is the gap between them: Moodle has no proper storefront, and WordPress has no course delivery.
Bridging that gap lets you:
- Sell Moodle courses as WooCommerce products, using the payment gateways and coupons you already have.
- Market and rank course pages on WordPress, which is far stronger for SEO than Moodle.
- Automatically create accounts and enroll students the instant an order is paid, with no manual admin work.
- Keep Moodle exactly as it is, with no migration required.
WordPress becomes your storefront, Moodle stays your classroom, and CourseTransit handles everything in between.
What You’ll Need
Before starting, make sure you have:
- A WordPress site with WooCommerce installed and configured.
- A Moodle site with web services enabled and administrator access.
- Administrator access to both platforms.
CourseTransit comes as two parts that work together: a plugin for WordPress and a companion plugin for Moodle. Both are needed so the two platforms can communicate securely. You can get both from the CourseTransit product page.
Step 1: Install Both CourseTransit Plugins
Install the CourseTransit plugin on your WordPress site, and install the companion CourseTransit authentication plugin on your Moodle site. Activate both. The WordPress plugin manages products, syncing, and enrollment; the Moodle plugin establishes the secure connection that lets WordPress talk to Moodle.
Step 2: Configure the Moodle Side
After installing the Moodle plugin, Moodle displays the CourseTransit settings page. If it isn’t configured yet, you’ll see a setup notice with a Launch Setup Wizard button. Click it to begin, and work through three quick steps.
Select an API user. Choose the Moodle account CourseTransit will act through. This account handles course synchronization, enrollment, and API authentication. We recommend a dedicated administrator account for better security and clean audit tracking.
Register your WordPress site. Enter a recognizable site name and your full WordPress URL, then add the site. This creates a trusted connection so only your registered WordPress site can communicate with Moodle.
Generate a site token. CourseTransit generates a secure API token that acts as the authentication key between the two platforms. Copy it and store it safely, since it’s shown only once and anyone with it can access the connection. Treat it like a password.
With these three steps done, your Moodle side is ready.
Step 3: Connect WordPress to Moodle
Now switch to your WordPress admin dashboard.
- Open CourseTransit from the sidebar and click Settings.
- Enter your Moodle site URL.
- Paste the site token you generated in Moodle.
- Click Save Settings, then click Test Connection.
A successful test confirms that the Moodle API is reachable, the token is valid, and the CourseTransit connection is active. Your two platforms are now talking to each other.
Step 4: Sync Courses and Create Products
With the connection live, sync your Moodle course catalog into WordPress. Each course can be turned into a WooCommerce product, pre-filled with details pulled from Moodle. From there you set the price, add descriptions, images, and any promotions, and publish them like any other product in your store.
This means you manage pricing and marketing in WordPress, while the actual course content stays in Moodle. No duplicate content management.
Step 5: Test a Real Purchase
Before going live, place a test order. Buy one of your courses through WooCommerce and confirm that CourseTransit creates the Moodle account and enrolls the student automatically. Once you’ve seen the full journey work end to end, from checkout to course access, you’re ready to open sales.
Common Setup Tips
A few things worth checking:
- Enable Moodle web services first. CourseTransit connects through Moodle’s official web services API, so these must be turned on.
- Make sure both sites are publicly reachable. The two platforms need to reach each other over the internet; firewalled staging sites can block the connection.
- Keep your token safe. If you lose it, generate a new one in Moodle and update it in WordPress.
- Never skip the test order. Always confirm the full purchase-to-enrollment flow before a real customer uses it.
The Result
Once CourseTransit is connected, the entire flow runs on its own. A student browses your WordPress store, buys a course, and is immediately given a Moodle account and enrolled, with a branded enrollment email sent automatically. No manual enrollment, no spreadsheets, no support tickets asking why someone can’t access their course.
You keep WordPress and WooCommerce for selling and marketing, Moodle for delivering great learning, and CourseTransit quietly bridges the two.
You can download CourseTransit and read the full documentation on the CourseTransit product page.
