Monday, 24 June 2013

WordPress as a Learning Management System

On a recent project I was asked to research and implement the best Learning Management System (LMS) for a small non profit organisation based in Thailand. We eventually ended up deploying 10 e-learning modules with the content hosted on Wordpress instead!

This article explains the rationale for the final solution implemented.


The Code of Conduct for the Protection of Children from Sexual Exploitation in Travel and Tourism is an industry-driven initiative with the mission to provide awareness, tools and support to the tourism industry to prevent the sexual exploitation of children. More information about the organisation can be found here:

As part of this work The Code planned to offer a range of e-learning modules to help frontline staff in the tourism industry recognise and act on any possible cases of child sex tourism in their premises. Training modules would be based on real cases and designed for specific tourism roles such as hotel receptionists, security guards, and tour guides.

The Technology

The Code had recently implemented as its core customer database. The first clear requirement for this project was that the e-learning training records should be stored in that system. Therefore we either had to find a native LMS or host a system outside of the CRM database and find a way to bulk upload the records regularly into

Implementing a LMS within seemed like the cleanest option so we started to research a number of suppliers such as: Cornerstone OnDemand, NetExam, and IntegratedLMS. Technically, these solutions would have offered direct integration with so we installed these tools in our Sandbox environment and evaluated them.

During evaluation we immediately saw that these tools had many more features than needed. The users who reviewed the tools were unanimous that they should be able to start the e-learning with as few clicks as possible. Furthermore, all of these learning systems built on the native had sliding licence costs based on the number of students/learners accessing the system. As the planned to offer their e-learning for free to all tourism professionals this pricing model was just not viable.

Externally hosted Learning Management Systems

As the licence costs for a native compatible learning system were prohibitive we looked at a wider range of external systems including Moodle, .LRN, InMarkets Skillcast, and ATutor. After completing our research we initially selected Moodle as our LMS. We were impressed with the ease of configuration and the strength of the developer community. After some discussion we decided to batch update training records back into using a scheduled script job.

However, after a while we decided to host the e-learning module on Wordpress. This wasn’t as radical a decision as it might sound as we were already using Wordpress as our main content management tool. However when we discovered the Wordpress Multilingual Plugin (WPML) translation plugin and realised how useful it could be for our e-learning modules we implemented the e-learning on Wordpress as well.

New System design

Figure: User authenticates again list of IDs held in Wordpress environment, then Wordpress exports records hourly back to back end.

However, we still needed to authenticate users before starting the e-learning and store the results eventually in the database.

Here’s the eventual setup we created.

  1. User enters wordpress site ( and enters their unique reference code which we issue via email after signup.
  2. Unique reference code is checked against CSV list of codes hosted on the wordpress site.
  3. If reference code is still valid, enter is redirected to start of e-learning module in Wordpress.
  4. User navigates through the training module as per a normal website, with scenario questions presented on every page and quiz questions at the end of each chapter to reinforce learning..
  5. User gets to final quiz. Answer validation and scoring is handling by custom JavaScript implemented in Wordpress. If user meets minimum score criteria of module (8 out of 10) the Wordpress creates a record storing user’s reference code, email address, module completed, date, and score.
  6. Files are then exported from Wordpress as CSV file. These are then uploaded as custom training records in The unique identifier linking the training record to the record in is the email address of the student.
  7. Once uploaded we can use the powerful reporting facility of the CRM to analyse the training results and trends.


Using the approach described above we have so far deployed 10 e-learning modules for tourism front line staff to protect children from sex tourism. The modules do not have any ongoing running/license cost aside from the annual hosting fee.

Hosting our e-learning on Wordpress meant that there were no cost-per-seat license implications for The Code. Additionally, updating the modules could be handled in house rather than relying on an external e-learning agency. As mentioned translation would be significantly easier when compared to the work required in translating traditional SCORM e-learning content.

WPML radically simplified our translation approach, and gave The Code the option to translate the e-learning content themselves or outsource translation via WMPL’s Icanlocalize service.

Benefits of Wordpress as a LMS

  • Easy update of content using Wordpress content management tools
  • Low cost for development
  • High number of skilled Wordpress programmers
  • Strong developer network and community for Wordpress
  • Translation using WPML
  • Easy amendment of content using Wordpress editing system


  • Much less data collected on learner activity (name, email, module, and completion date). Those family with enterprise class LMS may want to see more information on learner activity
  • At some point in future we might need additional LMS functionality like classroom scheduling, curriculum planning, multi-path learning, and learning communities. This will require additional Wordpress development or a move to a more sophisticated system.
  • is not updated in real time, you have to wait for the scheduled file update to run before you can run updated reports.
  • Reports will be inaccurate if batch update operation fails and is not noticed.

Further reading:

Bringing together the best strengths of CRM and Wordpress CMS seems to be a growing topic at the moment. It’s great to see that others are experimenting with this “best of both worlds” approach.

What do you think? 
  • Could your organisation benefit from utilising the best of Wordpress and
  • Is anyone working on a Wordpress application for
  • Are there LMS providers out there that don’t charge “per seat” licensing?