Integrating Open edX with WordPress or another CMS
Open edX and the need for a CMS
Over the past 5 years, open edX has become the online learning platform with the largest total number of users in the world, with an estimated total of more than 35 million learners.
edX.org, the online learning destination by edX inc., has reached over 17 million learners, and over 1500 online learning sites running on open edX in 64 countries and 34 languages account for at least 18 million more learners.
If you run or plan to launch one of these online learning initiatives, the open sourced open edX platform, will cover your needs in terms of hosting and operating the online courses, but there is also the need of a powerful web content management tool to promote your initiative and courses, which will most likely have very specific requirements and the open edX platform was simply not designed to serve as a content management system (CMS), so it includes very limited capabilities for managing web content.
At the very least, an online learning initiative will require a homepage or main landing page of the online destination, a course catalogue or any other way to find the course a user is looking for, a page describing each course or program that is offered, and very often, some additional content pages for practical and informational purposes, not necessarily related to the online courses themselves.
All these functions are actually included in the open edX platform, but in a very rigid way, that basically comprises:
- One homepage with one possible layout
- One course catalog page with almost the same layout and basic search features
- A course about page for each course
- A set of 6 static pages for things like the honor code, terms of service, privacy policies, contact information, frequently asked questions, and some more.
It may be the case that your online learning initiative has some very specific requirements for the web content pages that can not be met with open edX by itself, or it may also be that the user experience has to be modified to allow for any specific requirements.
In these scenarios, you could resort to making custom changes to the open edX platform codebase to accommodate your requirements, but this will require both deep knowledges of how the open edX platform is built and themed, and also a significant ongoing maintenance effort as you’ll need to reimplement your changes every time you want to upgrade to the newest release of open edX.
It may also be the case that the publishing and management of your web contents need to be simplified and liberated from the more complex deployment of changes that the open edX platform demands, or that there is an existing platform or corporate website that has to be integrated with it.
For all these reasons, it can make a lot more sense to use open edX in combination with a CMS such as WordPress, Drupal, or any other, and in fact, most of the large open edX installations actually favor this approach.
This article will provide some key insights into how to make it work seamlessly.
First of all, there are certain features to look for when integrating open edX with an external website or a marketing site:
- Seamless branding: Most likely the integration you are looking for requires that the website and the Open edX platform share a significant amount of styles and “look and feel” so that the users get an integrated experience across both platforms.
- Session awareness: This is the capacity of the external website to identify if the user is already logged into open edx or not so that it can present any login options, or user options or contents accordingly.
- Enrollment awareness: This is the capacity of the external website to figure out if a certain course is available for enrollments, or if the logged user is or is not enroll in such course so that it can display the right call to actions for a particular course.
- Visibility of the course catalog: This is the capacity of the external website to access information about the list of courses that are available to the users
The rest of this article will dive into more depth about what it takes to accomplish each of these features.
Open edX implements a comprehensive theming approach that will let you customize the look and feel of your open edX site even to a very large extent, but with a significant technical effort, both for creating and testing the new theme, and also to maintain it over time. However, you may also use the default theme that comes with the open edX standard version and only customize a few variables such as colors, logos, links and such.
Since the website or CMS side will more likely have more powerful of flexible theming options, the simplest alternative will be to customize the theme on the external website to make it look as similar as needed to the one that your open edX site has.
Generally speaking, even making minor adjustments to make the header and the footer of the pages look very similar is all you will need to provide a seamless experience to your users across both sites.
Open edX will store the user session information in one session cookie, so you need to have that cookie configured to be shared among the 2 domains used by the 2 platforms so that the external website can also read it. The simplest case is one where the open edX platform resides in a subdomain of the website domain’s, for example, openedx.yourdomain.com, and of course, the website resides in yourdomain.com. In this case, and provided both sides are https encrypted, you can have the following configuration on the marketing site:
Once that is in place, you’ll be able to read and use the cookie information from your website.
Using this information you’ll be able for example to build a session-aware user menu, that will check if a user is logged in or not, and if it’s not, display the login and register links to open edX, but if the user is actually logged in, display a user menu with links to the user’s dashboard, profile page, account settings page, log out link, etc.
The next thing you will want to add to your website – open edX integration is the capacity on your marketing site to figure out if a particular course (designated by the open edx course_id) is available for enrollments, or if the logged in user is already enrolled to the course. For now, we are considering the simplest case where you already know the specific course_id of each of the courses in your marketing side, which means you will have to manually ensure that every time a new course is created, the corresponding records, pages, and course ids are added to the marketing site as well.
Course catalog visibility:
As edx.org has grown into a more complex destination with diverse needs for discovering and presenting the information about the online courses, the open edX platform has been equipped with an additional application called course discovery service, that is basically an aggregator of course information to be collected from studio and the e-commerce services and to be used in the marketing website, the e-commerce platform, and the mobile applications.
Running the course discovery service may be a bit of a technical challenge at first, but like all the other open edX services it can be accomplished and there is some documentation for the course discovery service to help you along the way, plus the help of the open edX community and of course the professional services of a company like eduNEXT.
Once your course discovery service is up and running for example in https://discovery.yourdomain.com, you may create courses and provide the discovery service database with significant metadata information about your courses, including short and long descriptions, images, videos, etc, and then consume that information directly from your website using the discovery API.
How to integrate Open edX with a WordPress site
WordPress is probably the most popular and widely used content management system out there, and it’s definitely a good choice in order to provide both high performance, flexibility, and simplicity for the management of all web contents.
One of the key features of WordPress and probably what has made it become so spread over the years is its wide range of extension possibilities in terms of plugins, themes, widgets, etc, that allow you to accomplish any specific requirement you may have.
As a contribution to the open edX global community, eduNEXT has developed a WordPress plugin called “WP open edX integrator“. With this free component, you can easily obtain both session awareness and enrollment awareness in your WordPress site. Visit https://wordpress.org/plugins/edunext-openedx-integrator/ or look it up in the WordPress plugin directory.
If you are a subscriber of one of eduNEXT’s Open edX as a Service Subscriptions, this integration between your WordPress or external marketing site and your open edX site comes as part of the Marketing site integration add-on.
The Plugin could be extended to allow for course catalog visibility as well, contact us if you are interested in this kind of thing.
This article summarizes a presentation made by Juan Montoya and Felipe Montoya from eduNEXT on the open edX conference 2018 in Montreal, Canada.
You can find the recorded presentation here: Integrating Open edX and your WordPress or CMS site – video and the presentation’s deck in here: Integrating Open edX and your WordPress or CMS site – slides
If you have any specific requirement for your online learning initiative powered by open edX, please contact us.