Database Info

Database Info

Table of Contents [show]1 Custom Tables2 Other Tables Used by LearnDash3 Data of Deleted Users4 Additional Quiz Tables4.1 Was this article helpful to you?
Custom Tables
All LearnDash data is stored within the same database used to run WordPress. LearnDash does not store or connect to any external data sources to retrieve or store data about users, courses, quizzes, etc.
LearnDash has two database tables to contain the users Course and Quiz progress details.
The first table is wp_learndash_user_activity which works similar to the ‘wp_posts’ table to record the activity type course, lesson, topic or quiz as well as the started and completed timestamps. This table is keyed by the ‘user_id’ and’ post_id’.
The second table is wp_learndash_user_activity_meta which works like the ‘wp_postmeta’. This table contains meta information related to the activity record in the main ‘wp_learndash_user_activity’.
There is a referenced activity_id field to link the main activity row to the activity meta rows. This meta information is the same items stored into the user meta array elements and will be keys like ‘steps_total’, ‘score’, ‘points’, etc. (basically key/value pairs of meta data needed to be stored as part of the activity record).
The process for populating these tables works in addition to the existing course and quiz progress. This means that when a user completes a lesson, the first part of the transaction will update the existing user meta array item. Afterwards, a secondary step will update the activity database tables. Please note that in future versions of LearnDash we will remove the dependence on the user meta array completely.
The database table details (schemas) are as follows:
CREATE TABLE `wp_learndash_user_activity` (
`activity_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) unsigned NOT NULL DEFAULT ‘0’,
`post_id` bigint(20) unsigned NOT NULL DEFAULT ‘0’,
`activity_type` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`activity_status` tinyint(1) unsigned DEFAULT ‘0’,
`activity_started` int(11) unsigned DEFAULT NULL,
`activity_completed` int(11) unsigned DEFAULT NULL,
`activity_updated` int(11) unsigned DEFAULT NULL,
PRIMARY KEY (`activity_id`),
KEY `user_id` (`user_id`),
KEY `post_id` (`post_id`),
KEY `activity_status` (`activity_status`),
KEY `activity_type` (`activity_type`),
KEY `activity_started` (`activity_started`),
KEY `activity_completed` (`activity_completed`),
KEY `activity_updated` (`activity_updated`)
)
CREATE TABLE `wp_learndash_user_activity_meta` (
`activity_meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`activity_id` bigint(20) unsigned NOT NULL DEFAULT ‘0’,
`activity_meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`activity_meta_value` mediumtext COLLATE utf8mb4_unicode_ci,
PRIMARY KEY (`activity_meta_id`),
KEY `activity_id` (`activity_id`),
KEY `activity_meta_key` (`activity_meta_key`(191))
)
Other Tables Used by LearnDash

wp_postmeta
wp_posts
wp_usermeta
wp_users

Data of Deleted Users
When a user is deleted via WordPress it also deletes of the user’s meta data.
Deleting a user removes the Assignment and Essay custom post types created by that user.
Quiz related statistics stored into the table wp_wp_pro_quiz_statistic and wp_wp_pro_quiz_statistic_ref are also remove when the user is deleted.
Additional Quiz Tables

wp_wp_pro_quiz_category
wp_wp_pro_quiz_form
wp_wp_pro_quiz_lock
wp_wp_pro_quiz_master
wp_wp_pro_quiz_prerequisite
wp_wp_pro_quiz_question
wp_wp_pro_quiz_template
wp_wp_pro_quiz_toplist

Was this article helpful to you?

Yes

No

LearnDash Overview

LearnDash Overview

LearnDash is a WordPress learning management system (LMS) trusted by companies, universities, training organizations, and entrepreneurs worldwide for creating (and selling) their online courses.
The structure and delivery of LearnDash courses is based on instructional design principles used in learning programs at Fortune 500 companies:

The top-level is Course.
Below that you have Lessons. Lessons are assigned to Courses. Lessons can optionally be grouped into Sections.
Below Lessons you have Topics. Topics are assigned to Lessons just like Lessons are assigned to Courses.
Finally, there are Quizzes. Quizzes can be assigned to a Course, Lesson or Topic.

NOTE
The terminology can be changed using custom labels, but the general structure remains the same. For example, “Lessons” can be renamed “Modules,” “Quizzes” can be renamed to “Tests,” and so on.
The software itself has a variety of options, and you also have the ability to add functionality using free and paid add-ons. For optimal performance (and a decreased risk of compatibility issues) we recommend only installing the add-ons that you need.
How LearnDash Modifies WordPress
Upon activating LearnDash, several items are added to your site in order for it to function properly:

New menu items, custom post types and taxonomies for courses, lessons, topics, quizzes, questions, assignments and essays
New widgets & shortcodes
New database tables
Group Leader user role

Was this article helpful to you?

Yes

No

Installation

Installation

If you have not already, please take a moment to review the technical requirements before you continue with installation. The minimum server requirements should be met before you install LearnDash.
IMPORTANT
You must enter a valid license key to receive support & updates.
Table of Contents [show]1 Install LearnDash2 Activate Your License3 Primary Domain vs. Sub-Domain3.1 Was this article helpful to you?
Install LearnDash

Navigate to PLUGINS > ADD NEW
Click Upload Plugin
Browse for and select the .zip file that you downloaded after purchase
NOTE: You can also download from your account
Click Install Now
Click Activate Plugin

Repeat these same steps for ProPanel if you purchased the PLUS or PRO package.
Activate Your License

Navigate to LEARNDASH LMS > OVERVIEW
In the LearnDash Bootcamp, enter your account email and license key (emailed to you after purchase, also located on your account page)
Click Save License
Verify you receive a green “Your license is valid” message
NOTE: If the license shows as invalid, see these resolution steps.

A separate license key is required for ProPanel.
Primary Domain vs. Sub-Domain
We are often asked whether it is better to install LearnDash on a sub-domain (ex: courses.yoursite.com) versus a top-level domain (ex: yoursite.com).
The short answer is that both options are viable and we have seen successful elearning programs take both approaches.
The benefit to building on a separate domain or sub-domain is that it separates all elearning-related components from those of your main site.
This is useful in case you need to troubleshoot compatibility issues, and it helps to limit any potential conflicts that could occur with the theme/plugins used on your primary domain versus the sub-domain.
However, you can certainly use LearnDash on your primary domain.
If your site is currently focused on training & elearning, then this probably makes sense. If you have multiple offerings (services, products, elearning, etc.), then perhaps it is best to separate the elearning component altogether so as to present a cleaner offering to visitors.

Was this article helpful to you?

Yes

No

Recommended Hosting

Recommended Hosting

If you have not yet selected a host for your LearnDash site, or you are not happy with the performance of your current host, then read the article below:
Popular Hosts for LearnDash

Was this article helpful to you?

Yes

No

WordPress Themes

WordPress Themes

NOTE
These are only suggestions as LearnDash works with most themes that are coded using WordPress standards.
If you already have a WordPress theme installed, LearnDash will try to adopt your theme’s styling. If you have not yet selected a theme, then you can consider using one of the following…
FREE

Astra
Kadence
GeneratePress

PREMIUM 

BuddyBoss for LearnDash
Elumine
Academy Pro
University Course and Event Theme
Unidash Online Education Theme
LMS Responsive Theme
Edumodo Education Theme
Invent – Education Course Theme
Lincoln – Education Material Theme
wOffice – Intranet/Extranet Theme
Thrive – Intranet & Community Theme
Education Center – Training Courses Theme

You can further customize LearnDash to match your current theme using custom CSS, or check out one of the following plugins:

Visual Customizer by Snap Orbital
Design Upgrade Pro by Escape Creative
Elementor Pro by Elementor

Was this article helpful to you?

Yes

No

How To Get Help

How To Get Help

Table of Contents [show]1 Support Process2 Perform Troubleshooting Basics3 Opening a Help Desk Ticket3.1 Was this article helpful to you?
Support Process
You may have some questions or run into an issue while using LearnDash. We are here to help.
In these situations, you have two options:

Self-help on this support site: Questions can be answered without needing to open a ticket and wait for a reply.
Contacting the Help Desk: Your ticket resolution time is quicker if you give us as much information as possible, such as steps to recreate the issue, your LearnDash System Status Report (downloadable from LEARNDASH LMS > SETTINGS > SUPPORT), a temporary login, and FTP information.

Perform Troubleshooting Basics
In order to properly troubleshoot an issue, we need to rule out some of the most common causes for issues. Follow the instructions in the Troubleshooting Basics support article first before contacting support.
Opening a Help Desk Ticket
If you have gone through the troubleshooting steps and still need some assistance then the LearnDash Support Team is ready to give you a hand! Our support is provided to valid license holders through a ticketing system. Help is just a short form away!
Open a Help Desk ticket →
NOTE
Support is available Monday through Friday from 7AM – 4PM (EST). Please see our Support Policy for complete details.

Was this article helpful to you?

Yes

No

Developers

Developers

Code Reference (Hooks & Filters, Functions, and API)
Database Info
Transferring LearnDash Courses

Was this article helpful to you?

Yes

No

Shared Course Steps

Shared Course Steps

Shared course steps allows you to reuse a lesson, topic and/or quiz across multiple courses. A few key reasons why you’d want to enable shared course steps include:
✅ Quickly create new courses with existing content from other courses
✅ Decrease bloat on your site caused by duplicate content
✅ Edit a step (lesson, topic or quiz) in a single place and that change will be reflected across all courses containing that step
WARNING
Once shared course steps is enabled, it should not be disabled without careful consideration. Any step (lesson, topic or quiz) associated to multiple courses will lose its association if the setting is disabled.
Table of Contents [show]1 Key Considerations1.1 Requires Course Builder1.2 Permalinks/URLs1.3 All Courses Listing Page2 Course Progression3 Enable Shared Course Steps4 Terminology4.1 Primary Association4.2 Secondary Association4.3 Bare URL5 Associated Content & Course Switcher5.1 Was this article helpful to you?
Key Considerations
Before you enable Shared Course Steps, please consider the following.
Requires Course Builder
Because your course step associations are no longer one-to-one, shared course steps requires you to use the LearnDash course builder.
Since steps can now be used across multiple courses, the course association dropdown—normally found within lesson, topic & quiz settings—is disabled.
Permalinks/URLs
Enabling Shared Course Steps will automatically change your permalinks structure to use nested URLs.
Here’s a topic URL without Shared Course Steps:
https://yoursite.com/topic/topic-name/
Here’s a topic URL with Shared Course Steps:
https://yoursite.com/courses/course-name/lessons/lesson-name/topic/topic-name/
All Courses Listing Page
In the WordPress admin area, the lesson, topic & quiz listing pages will no longer have an “Assigned Course” column.
However, you can use the course filter dropdown to view all steps assigned to a particular course.

Course Progression
Progression will always be tracked on a per-course basis. If a user completes a step in one course, it will not be marked complete in other courses where that step is also associated. This applies to lessons, topics and quizzes.
Enable Shared Course Steps

Navigate to LEARNDASH LMS > COURSES
Click on the Settings tab
Scroll down to the Global Course Management & Display Settings section
Make sure the “Course Builder” is turned on
Next to “Shared Course Steps,” flip the toggle switch on
Save your changes

Terminology
Primary Association
A primary association means that the step was associated to the course before the Shared Course Steps setting was enabled. More specifically, you will see some courses designated as the “primary course” for the related step, if the association took place before enabling shared course steps. You can have a maximum of one primary association for any given step.
Secondary Association
A secondary association means that the step was associated to the course after the shared course steps option was enabled. More specifically, you will see some courses designated as “other course” for the related step, if the association took place after enabling shared course steps. You can have more than one secondary association.
Bare URL
A bare URL refers to the standalone component’s URL. For example, we needed a way for admins to have the ability to view a lesson, topic or quiz even if it was not yet assigned to a course (i.e. cannot use nested URL that would normally include the course slug). Only administrators can access bare URLs.

Example Bare URL: https://yoursite.com/lessons/lesson-name/
Example Nested URL: https://yoursite.com/courses/course-name/lessons/lesson-name/

Associated Content & Course Switcher
Once Shared Course Steps is enabled, a new “Associated Content” box will appear when editing courses, lessons, topics & quizzes. It’s located at the bottom of the sidebar:

Note:
The Associated Content box is NOT for assigning or moving content between courses. It functions as a way to show you what content the item is currently associated with. Instead, if you want to add, change, or remove the step from a course, you will need to use the Course Builder
When editing a course, the Associated Content box will list all lessons, topics & quizzes that have been associated with that course. You can click on any course step to go directly to it’s edit screen.
When editing a lesson, topic or quiz, you’ll see the same thing. In addition, there is a Course Switcher dropdown. This allows you to view the lesson/topic/quiz’s associated content for a different course (if it’s associated with more than one course).

Was this article helpful to you?

Yes

No

Course Display & Content Settings

Course Display & Content Settings

Each course can have its own set of display options. In this article, we’ll cover how each display setting affects your course, and how you might want to adjust each setting to fit your particular needs.
Table of Contents [show]1 Locating Course Display Settings2 Course Materials3 Course Certificate4 Course Content5 Custom Pagination6 Custom Lesson Order6.1 Was this article helpful to you?
Locating Course Display Settings

Navigate to LEARNDASH LMS > COURSES
Click on the course you want to edit
Click on the Settings tab at the top of the page
Locate the section titled “Display & Content Options”

Course Materials
Course materials are supplemental materials needed for your course. It is most common to include PDF files or other downloadable files in this area, but you can include anything you’d like (PDFs, images, downloadable audio files, links to other websites, etc.).

Next to Course Materials, toggle the switch on
Add your materials in the box (HTML is supported)

Course materials are displayed to your users in a separate tab, alongside your main course content.

NOTE
Course materials are shown to all users (even those not enrolled in the course).
Course Certificate
You may want to provide a certificate to users who complete a course. There are a few things to keep in mind:

You need to create a certificate first, before it will appear in this list.
The certificate will become available after the user has completed all steps (lessons, topics & quizzes) associated with the course.
Once available, a button will appear on the course page for the user to download their certificate.

Simply select the certificate that you’d like to associate with this course.

Here’s how it will look to the user:

NOTE
Certificates may also be associated with quizzes.
Learn how to create a certificate »
Course Content
The course content setting determines who can see the list of lessons, topics & quizzes that make up your course.
This does not affect the content that you add to the WordPress editor on the course page. That content will be displayed to everyone.

Always visible (default)
Display list to everyone, whether or not they are enrolled in the course.
Only visible to enrollees
Only display the list to users enrolled in the course.

NOTE
If you choose Always visible, and a non-enrolled user tries to access a lesson, topic or quiz, they will not be able to click on it, and will see a message that says, “You don’t currently have access to this content.”

Custom Pagination

Pagination refers to the number of course steps that are displayed at one time, before the user has to use small navigation buttons to navigate to subsequent pages to access additional course steps. By default, LearnDash will use your settings from the general settings page, but you may choose to customize this on a course-by-course basis.

Toggle the Custom Pagination setting on
Enter a number for lessons per page
Enter a number for topics per page

NOTE
This setting applies to both the course content table (displayed on the course page), as well as the course navigation widget for this course.
Custom Lesson Order
In the event that you choose to turn off the course builder, you can use custom lesson order to determine the order in which your lessons are displayed. The course builder will always take precedence over these settings.

Toggle the Custom Lesson Order setting on
Choose a Sort By option

Date (default)
Title
Menu Order

Choose an Order Direction

Descending (default)
Ascending

Was this article helpful to you?

Yes

No

Course Progression

Course Progression

Course progression refers to how a user can navigate through your course. There are two main options, which we’ll explain below.
Table of Contents [show]1 Locating Course Progression Settings2 Linear vs. Free form2.1 Was this article helpful to you?
Locating Course Progression Settings

Navigate to LEARNDASH LMS > COURSES
Click on the course you want to edit
Click on the Settings tab at the top of the page
Locate the section titled “Course Navigation Settings”

Linear vs. Free form
As the course creator, it’s up to you how you want to let your users navigate through your course. You have two options:

Linear (default)
Requires the user to progress through course steps in the order in which you’ve laid them out. They cannot jump around and skip lessons, topics or quizzes. Ex: A user must finish the first lesson before they can take the second one.
NOTE
Linear Progression does not apply if the Course Access mode is set to “Open”.

Free form
Allows the user to move freely through the course without following the course steps in any particular order. Ex: A user may take the tenth lesson before completing the first one.

Was this article helpful to you?

Yes

No