1. Home
  2. Docs
  3. LearnDash Addons
  4. LearnDash Course Import/Export

LearnDash Course Import/Export

With the LearnDash Course Import/Export add-on, creating, updating, migrating and backing-up courses has never been this easy! Export courses into a .xls or .xslx file with a single click. Plus, create and edit courses, lessons, and topics directly from a simple template, importing them into any LearnDash site in record time.

Below, you’ll find the instructions you need to follow to install, configure, and import/export courses with this add-on.

Installation

  • Install the LearnDash LMS plugin & activate it
  • Install LearnDash Course Import/Export and activate it
  • A new Course Import/Export menu will appear under the LearnDash LMS menu
LD Course Import Export – Main Menu

Activate Your License Key

The license key can be configured from the License Settings tab, found on the main Course Import/Export menu. License keys will be sent to your email address when you purchase the addon.

Insert your license key in the field and then click on Activate.

LD Course Import Export – License

General Settings

To configure the add-on’s settings select Course Import/Export from the LearnDash menu on the WordPress dashboard.  You will find all setting options under the General Settings tab.

LearnDash Course Import Export – General Settings

Minimum role to Import courses

Here you can set the minimum user role that will be able to import/export courses. Currently you can choose user roles between administrator, editor & author.

Publish Courses on Import

Enable this toggle if you want to publish the courses on import. By default, the imported courses status will be Pending.

Update duplicate lessons or Topics on Import

Enabling this toggle will update the duplicate lessons and topics, when you import a course.

Enable Debug Logs

Enabling the “Enable Debug Logs” toggle in the general settings tab allows the system to generate import/export debug logs, which offer valuable information and insights for troubleshooting any potential issues. Once Debug logs are enabled, two new tabs will appear: “Debug logs” and “Systems Information“. The “Debug logs” tab displays detailed logs that provide a comprehensive overview of the user’s process, while the “System Information” tab showcases your system specifications.

LearnDash Course Import Export – Debug Logs
LearnDash Course Import Export – System Information

Export a Single Course

Select “Courses” from the LearnDash menu. An Export button will appear in the courses table, under the “Course Export” column. 

To export a course, simply click on the export button. The course will be downloaded as a .xls or .xlsx file. Both course content and course settings will be exported in the file and can be imported to another LearnDash site using this add-on.

LD Course Import Export – Export Single Course

Export Multiple Courses

To export multiple courses into a single file, simply select the courses you want to export and then select the “Export to xls”  or “Export to xlsx ” options from the “Bulk Options” field.

Complete courses, including course content and settings,  will be downloaded as a .xls or .xlsx file, which can be imported to another LearnDash site using this add-on.

LD Course Import Export – Export Multiple Courses

Import a Single Course

To import a course, navigate to the “Import Course” tab from the Course Import/Export menu located under the main LearnDash LMS menu. To complete the import, select the completed template’s .xls or .xlsx file and click on the import course button.

LD Course Import Export – Import Course

Import Multiple Courses

You can import several courses at once using a single template file by adding multiple entries on the “Courses” sheet of the template. When importing lessons and topics, simply specify the title of the course they are assigned to from the “Course” column on the “Lessons” and “Topics” sheet.

Then, to complete the import process, go to the “Import Course” tab from the course Import/Export menu located under the main LearnDash LMS plugin menu. Here, select the Microsoft Excel .xls or .xlsx file containing multiple courses and click on the “import course” button.

After importing the file, you will see a list of all imported courses. Next, select a specific course to configure its settings and publish.

LD Course Import Export – Import Multiple Course

LearnDash Course Import/Export Template Guide

The LearnDash Course Import/Export add-on uses a standard template to import and export courses, lessons, and topics. When exporting a course, its content is added to the corresponding fields on the spreadsheet file. Likewise, on import, the template should be filled with the necessary course content and settings, in the order and form outlined below:

“Course” Sheet

  1. Type

The first column on the “Course” sheet is the “Type” column. This column is used to specify the type of content being imported. Content types options include: course, lesson, and topic. 

In this sheet, this field should be set to “course”.

  1. Course ID

This field will show the course ID when you will export any course.

  1. Category

Here you can add the categories of the course i.e in the example;

  • Category A, Category A > Category B 

Category A is parent & Category B is child while Category A > Category B shows their relation.

  1. Tag

Here you can add a single or multiple tags for your course. You can separate multiple tags by using commas.

  1. Title

This column holds the title of the course.

  1. Content

This column contains the content featured in the course description page. 

Images, videos and text can be included in the content using HTML tags. To do so, use <img> for the images, <p> for text  and <video> and for the videos. 

  1. Course Image

Here you can add the featured image of the course. Simply add the link of the featured image in this column.

  1. Course Sections

Enter the course section related information. Section attributes include the following:

a) order
It is a number. It starts with 0 (as the section on the most top). Numbers starting from 1 onwards come below it.

b) ID
It is a 13 digit unique number.

c) post_title
It is the section name of the respective section and is in text format.

d) url
It is the URL of the respective section page but since sections do not have an individual  page, it should always be be left as “Empty text”.

e) edit_link
It is the URL of the edit page of the respective section but since sections do not have an individual page, it should always be left as “Empty text”.

f) tree
It is an array (List of file/folder paths, or filename). Since sections in LearnDash don’t have any page/template files, It should always be left as “Empty Array”.

g) expanded
It tells if the section has sub-sections or not but since LearnDash does not have subsections, it should always be set to “false”.

h) type
It is the post type. It should always be set to “section-heading”.

Format (Single):
[{“order”:0,”ID”:1682519285317,”post_title”:”SECTION 1″,”url”:””,”edit_link”:””,”tree”:[],”expanded”:false,”type”:”section-heading”}]

Format (Multiple):
[{“order”:0,”ID”:1682519285317,”post_title”:”SECTION 1″,”url”:””,”edit_link”:””,”tree”:[],”expanded”:false,”type”:”section-heading”},{“order”:2,”ID”:1704272045978,”post_title”:”SECTION 2″,”url”:””,”edit_link”:””,”tree”:[],”expanded”:false,”type”:”section-heading”}]

  1. Course materials enabled

To enable course materials, add “On” in the field.

  1. Course Materials

Supporting materials for the course can be added as plain text or HTML.

  1. Course trial Price

For the recurring Access Type, enter the price for the trial period of the Course.

  1. Course trial duration t1

For the recurring Access Type, enter the duration for the trial period of the Course.

  1. Course trial duration p1

For the recurring Access Type, enter the period for the trial of the Course i.e. D for days, W for weeks, M for months or Y for years.

  1. Course price type

Here add the course price type i.e. subscribe, closed etc.

  1. Course price type paynow price

For the buy now Access Type, enter the course price.

  1. Course price type paynow enrollment url

For the buy now Access Type, enter the URL of the page you want to redirect your 

enrollees after signing up for the specific course.

  1. Course price billing cycle

Set the number of course price billing cycle in numbers.

  1. Course no of cycles

Set the number of course cycles in numbers.

  1. Course price

Set the course price in numbers.

  1. Course price type subscribe billing cycle

For the recurring Access Type, enter the billing period i.e. D for days, W for weeks, M for months or Y for years.

  1. Course price type subscribe billing recurring times

For the recurring Access Type, set the times for which the billing cycle repeats.

  1. Course price type subscribe price

For the recurring Access Type, set the course price.

  1. Course price type subscribe enrollment url

For the recurring Access Type, enter the URL of the page you want to redirect your enrollees after signing up for the specific course.

  1. Course price billing t3

For the recurring Access Type, enter the duration for the billing.

  1. Course price billing p3

For the recurring Access Type, enter the billing period i.e. D for days, W for weeks, M for months or Y for years.

  1. Course price type closed custom button label

Here you can add a button label.

  1. Course price type closed custom button url

For the closed Access Type, enter the “Take this course” button URL.

  1. Course price type closed price

For the closed Access Type, set the course price.

  1. Course prerequisite enabled

To enable the course prerequisite, add “on” in this field.

  1. Course prerequisite 

Add the IDs of single or multiple course prerequisites.

  1. Course prerequisite compare

In this field, to select “Any Selected” option, add “ANY”, or to select “All Selected” option, add “ALL”.

  1. Course points enabled

To enable the course points, add “ON” in this field.

  1. Course points

Add points in this field.

  1. Course points access

Add the points required to access course access.

  1. Expire access

To enable the course access expiration, add “ON” in this field.

  1. Expire access days

Set the number of days a user will have access to the course from enrollment date.

  1. Expire access delete progress

Set this field to “ON” to delete the user’s course and quiz data when the course access expires.

  1. Certificate

To add the certificate add its ID.

  1. Exam challenge

Set this filed to “ON” if you want to add exam challenge.

  1. Course disable lesson progression

If you want to set the “Course Progression” to “Free Form”, add ON in this column. Otherwise for “Linear” Course Progression, leave the column empty.

  1. Course disable content table

If you want to set the “Course Content” to “Only visible to enrollees”, add ON in this column. Otherwise to set “Always Visible”, leave the column empty.

  1. Course lesson per page

Default Lesson per page.

  1. Course lesson per page custom

Set the number of lesson that should appear per page.

  1. Course topic per page custom

Set the number of topics that should appear per page.

  1. Course start date

Set the course start date in epoch/Unix timestamp (in numbers)..

  1. Course end date

Set the course end date in epoch/Unix timestamp (in numbers).

  1. Course seats limit

Set the Number of seats available for the students to be enrolled in.

“Lessons” Sheet

  1. Type

The first column on the “Lesson” sheet is the “Type” column. This column is used to specify the type of content being imported. Content types options include: course, lesson, and topic. 

In this sheet, this field should be set to “lesson”.

  1. Lesson ID

This field will show the lesson ID when you will export any lesson.

  1. Category

Here you can add the categories of the lesson i.e in the example;

  • Category E, Category E > Category F 

Category E is parent & Category F is child while Category E > Category F shows their relation.

  1. Tag

Here you can add a single or multiple tags for your lesson. Multiple tags can be separated by using commas.

  1. Title

This column holds the title of the lesson.

  1. Content

This column contains the lesson’s content.

Images, videos and text can be included in the content using HTML tags. To do so, use <img> for the images, <p> for text  and <video> and for the videos. 

  1. Lesson Image

Here you can add the featured image of the lesson. Simply add the link of the featured image in this column.

  1. Course 

This column represents the course to which this lesson is attached.

  1. Shared Course

Add the shared course title.

  1. Forced lesson time 

Here add the time of the lesson.

  1. Lesson assignment points amount

Set the lesson assignment points.

  1. Visible after

Here you can set the “enrollment based” lesson schedule. All you have to do is, add number of days after that the lesson will be available.

  1. Visible after specific date

Date can be added as a TimeStamp and to convert a date to timestamp you can use https://www.epochconverter.com/ 

  1. Lesson materials enabled

To enable lesson materials, add “on” in this field.

  1. Lesson materials

Supporting materials for the lesson can be added as plain text or HTML.

  1. Lesson video enabled

To enable video lesson, set this field to “ON”.

  1. Lesson video url

Add the URL of the video.

  1. Lesson video shown

If you want to select “Before completed sub-steps” option then add “Before” in the field or to select “After completing sub-steps” option, add “After” in the field.

  1. Lesson video auto start

If autostart should be enabled then add “On” here.

  1. Lesson video show controls

To enable video control display, add “On” in the field.

  1. Lesson video auto complete

To enable video auto complete, add “On” in the field.

  1. Lesson video auto complete delay

Here you can set the video auto complete delay in numbers in seconds.

  1. Lesson video show complete button

To enable video complete button, add “On” in the field.

  1. Lesson assignment upload

To enable the lesson assignment upload, add “On” in the field.

  1. Assignment upload limit extensions

Add a file extension if you want to limit assignment upload in a specific format.

  1. Assignment upload limit size

Here you can set the assignment file uploading limit i.e. 20M

  1. Lesson assignment points enabled

Add “On”, if assignment poinst are enabled.

  1. Assignment upload limit count

Set the number, to limit the number of uploaded assignment files.

  1. Lesson assignment deletion enabled

If you want to allow file deletion then add “On” in this field.

  1. Auto approve assignment

Add “On’ to enable the Auto Approve Assignment feature.

  1. Forced lesson time enabled

Add “On” here to enable Forced lesson time.

  1. Lesson schedule

If lesson schedule is set to “Enrollment-based” then add “visible_after” in this field.

If lesson schedule is set to “Specific date” then add “visible_after_specific_date” in this field.

  1. Sample lesson

To enable Sample Lesson, add “on” in this field.

  1. Lesson video focus pause

To enable the “Video Pause on Window Unfocused” toggle, add ON in this field.

  1. Lesson video track time

To enable the lesson video track time, add “On” in the field.

“Topics” Sheet

NOTE: Some of the columns in TOPIC sheet has “Lesson” in the title, instead of “Topic”. You can add your topic settings in these columns as Title doesnot has any effect.

  1. Type

The first column on the “Topics” sheet is the “Type” column. This column is used to specify the type of content being imported. Content types options include: course, lesson, and topic. 

In this sheet, this field should be set to “topic”.

  1. Topic ID

This field will show the topic ID when you will export any topic.

  1. Category

Here you can add the categories of the topic i.e in the example;

  • Category X, Category X > Category Y

Category X is parent & Category Y is child while Category X > Category Y shows their relation.

  1. Tag

Here you can add a single or multiple tags for your topic. Multiple tags can be separated by using commas.

  1. Title

This column will hold the title of the topic.

  1. Content

This column contains the topic’s content.

Images, videos and text can be included in the content using HTML tags. To do so, use <img> for the images, <p> for text  and <video> and for the videos. 

  1. Topic Image

Here you can add the featured image of the topic. Simply add the link of the featured image in this column.

  1. Course 

This column represents the course to which this topic is attached.

  1. Lesson 

This column represents the lesson to which this topic is attached.

  1. Shared Course

Add the shared course title.

  1. Shared Lesson

Add the shared lesson title.

  1. Topic materials enabled

To enable topic materials, add “on” in this field.

  1. Topic materials

Supporting materials for the topic can be added as plain text or HTML.

  1. Lesson video enabled

To enable video topic, set this field to “ON”.

  1. Lesson video url

Add the URL of the video.

  1. Lesson video shown

If you want to select “Before completed sub-steps” option then add “Before” in the field or to select “After completing sub-steps” option, add “After” in the field.

  1. Lesson video auto start

If autostart should be enabled then add “On” here.

  1. Lesson video show controls

To enable video control display, add “On” in the field.

  1. Lesson video focus pause

To enable video focus pause, add “On” in the field.

  1. Lesson video track time

To enable video track time, add “On” in the field.

  1. Lesson video auto complete

To enable video auto complete, add “On” in the field.

  1. Lesson video auto complete delay

To enable video autocomplete delay, add numbers in seconds in the field.

  1. Lesson video show complete button

To enable video show complete button, add “On” in the field.

  1. Lesson assignment upload

To enable assignment upload, add the “On’ in the field.

  1. Assignment upload limit extensions

Add a file extension if you want to limit assignment upload in a specific format.

  1. Assignment upload limit size

Here you can set the assignment file uploading limit i.e. 20M

  1. Lesson assignment points enabled

Add “On”, if assignment points are enabled.

  1. Lesson assignment points amount

Set the number of points assigned to the lesson assignment

  1. Assignment upload limit count

Set the number, to limit the number of uploaded assignment files.

  1. Lesson assignment deletion enabled

If you want to allow file deletion then add “On” in this field.

  1. Auto approve assignment

Add “On’ to enable the Auto Approve Assignment feature.

  1. Forced lesson time enabled

Add “On” here to enable Forced topic time.

  1. Forced lesson time

Here you enter the enforced lesson completion time in epoch/Unix timestamp (in numbers).

  1. Lesson schedule

If topic schedule is set to “Enrollment-based” then add “visible_after” in this field.

If topic schedule is set to “Specific date” then add “visible_after_specific_date” in this field.

  1. Visible after

Here you can set the “enrollment based” topic schedule. All you have to do is, add number of days after that the topic will be available.

  1. Visible after specific date

Here you enter the lesson visibility time (starting) in epoch/Unix timestamp (in numbers).


FAQs

Does the Add-on support all course types (pricing) present in LearnDash?

Yes. The add-on supports all LearnDash course types including the recurring course type as well.

Which excel extension does this add-on support?

This add-on supports the .xls and .xlsx file extension.

Where can I find the standard XLS template?

The plugin zip file includes a standard XLS template for import. The standard XLS template is located inside the zip file provided here: learndash-course-import-export > sample-import-files.

How can I export a course?

To export any course you have to go to the “Courses” page under the LearnDash LMS menu. Next, click on the “Export” button located in the “Course Export” column. 

Can I export lessons and topics, without exporting an entire course?

Currently, the add-on only supports exports for complete courses.

Can I import or export multiple courses at a time?

Yes, the add-on supports imports and exports for multiple courses. 

Will the course, lessons, and topics be successfully imported if the Shared Course Steps are enabled from the course settings?

Yes, you can successfully import and export the courses with the “shared course steps” option enabled.

Why does the course’s import progress bar get infinitely stuck?

The import progress bar might get stuck when importing a large number of courses at once. To resolve this issue, please contact your hosting provider and ask them to apply the following changes to server configurations:

  • upload_max_filesize = 32M
  • post_max_size = 48M
  • memory_limit = 256M
  • max_execution_time = 600
  • max_input_vars = 1000 
  • max_input_time = 400

If a course, lesson, or topic has text, images, and a video lesson how are these added to the spreadsheet and how would one control formatting/appearance?

Images and videos can be added using HTML tags. <img> for the images, <p> for text  and <video> and for the videos. Using these tags you can add images and videos along with the text.

How does your addon handle the order of Courses, Lessons, and Topics? Can You Provide An Example Of How This Works?

Our addon maintains the order in which Courses, Lessons, and Topics are created, irrespective of how they are structured in the course builder. For example, if Lesson 2 is created before Lesson 1 on your website, the export sequence will be Lesson 2 followed by Lesson 1.

Why do you recommend admins that they should review their content before importing it to a second site?

We recommend admins that they should review their content before importing for a specific reason. The content export order is determined by the creation order, not the order in the course builder. By doing this review, it ensures that admins are well-informed about the content sequence and how it will be imported into the second site.

Can we rearrange the lessons in a specific order?

Certainly! You have the flexibility to arrange lessons in your preferred order by manually moving them up or down within the exported sheet before you begin the import process.

How can we easily identify the order of lessons?

You can identify the order by examining the “ID” column in the export file, which provides a clear reference for each lesson’s position.

What happens if I import a course without enabling the addon’s “publish” toggle, and later, upon publishing, the status of its lessons and topics remains pending?

It’s important to note that when a course is imported as pending, along with its lessons and topics, the default behavior of LearnDash is to maintain the pending status even upon publishing. To address this behavior and ensure proper import, follow these steps:

  1. Make sure the course you plan to import is not already present on your site. If it is, delete this course along with its existing lessons, topics, and then empty the trash as well.
  2. Enable the “Publish Courses on Import” option in the General Settings of our addon.
  3. Proceed with importing your course using our addon.

By following these steps, all course content, including lessons, should be published upon the initial import, preventing any pending status.


Changelogs

1.3.4

  • New: Update PHP spreadsheet library 1.18.0

1.3.3

  • Fix – Update existing course status.
  • Fix – Update existing lessons and topics.

1.3.2

  • Fix – Course import when shared course steps enabled.
  • Fix – Export all lessons.

1.3.1

  • Fix – Duplicate images upon import.

1.3.0

  • Fix – Addressed issues with plugin logging settings.
  • New – Added button to clear logs under logs tab.

1.2.9

  • New – Added support for additional LearnDash course fields during import/export.
  • New – Improved the plugin’s user interface to enhance the overall user experience.
  • New – Implemented a logging system to track activities performed with the addon.
  • Fix – Resolved issues related to the association of lessons and topics during the import process.
  • Fix – Addressed minor problems and warnings within the plugin.
  • Fix – Updated the Excel template used by the plugin.
  • Fix – Enhanced the codebase and optimized its performance.

1.2.8

  • New – Update duplicate lessons/topics option is added in plugin settings.
  • Fix – Plugin documentation link updated.
  • Fix – Recurring courses values on import/export.
  • Fix – Issues with exporting data into wrong column.
  • Fix – Change format of prerequisite courses from course ID to course names on import/export.
  • Fix – Resolved lesson and topics association issue when shared course steps option is enabled.

1.2.7

  • Fix – Compatibility issue with PHP version 8.
  • Fix – Resolved lesson and topics association issue when the shared course steps option is enabled.

1.2.6

  • Fix – Resolved topics association issue with course and lesson on import.
  • Fix – Added plugin settings description.

1.2.5

  • Fix – Course and Quiz linking.
  • Fix – Resolved import/export problems related to shared course steps.
  • Fix – Improved the user interface and experience of the plugin settings page.
  •  Fix – Upgraded the Excel template used in the plugin.

1.2.4

  •  Fix – Course duplication issue.
  • Fix – Issues with categories and tags.
  • Fix – Editor / Author LearnDash menu setup.
  • New – Added setting for publishing course on import.

1.2.3

  • New – Import/Export tags for courses/lessons/topics.
  • Fix – UI Improvements.

1.2.2

  • New – Added settings for the minimum role to import courses.

1.2.1

  • New – Added support for shared course steps in Import/Export.

1.2.0

  • New – Import/Export category and featured image for courses / lessons / topics.

1.1.1

  • Fix – Courses, Lessons, and Topics order of list after import.

1.1.0

  • New – Import/Export course, lesson, and topic settings.

1.0.2

  • Fix – Export button UI on course listing page.

1.0.1

  • Fix – License issue.
  • Fix – Minor issues.

1.0.0

  • Initial Release.

How can we help?