Don’t want to show all available courses on your course list? No problem! You can hide any course you choose.

If you have multiple LearnDash powered courses available to your learners then you might not want all of them to be available in the course list. This can be the case if you have a one or two courses that only apply to a select group of learners.

For example, if you are using LearnDash for internal employee training then it doesn’t make sense to include manager-specific courses in the course list for all employees since only managers will need to take these select courses.

To configure hidden courses using LearnDash you will need to leverage two features:

  1. Course List shortcode
  2. LearnDash Groups

Here is one possible way to set this up:

Step 1: Add Tag to Non-Hidden Courses

Add a meaningful Tag to all the courses that should not be hidden. It can be anything that makes sense in the context of your site. Use “curriculum”, or even just “courses”. The important thing is that you add this tag to all courses except the ones that you want to hide.

Step 2: Create a Course List for the Tag

Now that all courses that should be visible have a tag you can use the course list shortcode on a regular WordPress page to insert this list.

Go to PAGES > ADD NEW and title the page “Available Courses” (or something similar).

Next, insert the Course List shortcode.

If our tag is “curriculum” then the shortcode may look like this:

[ld_course_list course_tag="curriculum"]

As a reminder, use the Shortcode Wizard to insert this shortcode to ensure proper formatting.

For adding additional formatting and features to this list, you can use the free Course Grid add-on.

Step 3: Redirect ‘/courses’ to Page Created in Step 2

This is a simple step but an important one. Now that you have a new page listing courses you will want to make sure that anyone who attempts to go to “” is redirected to the new page (i.e. “”). You can easily configure this redirect using a free plugin.

Step 4: Create a LearnDash Group

Now that your course list is created it’s time to create a LearnDash Group of the users who should have access to the hidden course(s).

To do this just go to LEARNDASH LMS > GROUPS > ADD NEW. Select the desired users as well as the hidden courses to associate with the Group. Last, publish the group.

Once published any user who is part of that Group will be automatically enrolled into the associated hidden courses and will appear on their profile under “Enrolled Courses”.

That’s all there is to it! Feel free to experiment with more elaborate set-ups by using multiple tags (or categories) and even by leveraging other shortodes that control view access!

Justin Ferriman photo

About Justin Ferriman

Justin started LearnDash, the WordPress LMS trusted by Fortune 500 companies, major universities, training organizations, and entrepreneurs worldwide. He is currently founder & CEO of GapScout. Justin's Homepage | GapScout | Twitter


15 responses

Leave a Comment

The process of giving tags to “Non-Hidden Courses” seems counter-intuitive. Are there ways to have multiple groups of hidden courses. e.g

I have company A and B, I don’t want them to be able to see each other’s courses. If I tag the non-hidden courses, but leave all hidden course untagged…then when company A logs in they can see everything that is hidden…including company B’s courses. To clarify, if I have 15 courses: 5 for company A that only they should see, 5 for company B that only they should see, and 5 that everyone can see. Based on my understanding of this ‘How To’ there does not seem to be a way to accomplish this.

In the case of multiple companies that need different view access you’d probably need to creatively leverage the GROUP shortcode. This allows you to display content to people but only if they belong to a certain Group (company).

When you redirect the courses page to the new courses page, courses are not accessible!

I used this code in htaccess:
Redirect 301 /courses

Courses still use ‘/courses’ in their URL…

Avatar Gerben

Is there a way to hide the Course Materials from non enrolled users?

Avatar Craig

Yup, you can wrap them in the ‘student’ shortcode which requires someone to be enrolled in order to view.

Is there a way to hide the (hidden) course from showing up in a search as well? I have a hidden course and everything works as expected above, but if a search is done with a word in that course it sill shows up in the search results.

Avatar Ty

I also want to achieve that, is that possible?

Avatar AC

This plugin might help – haven’t tested it in this specific scenario though!

Avatar Jakson

A “Hide course” after (select date) setting would be great 🙂

Avatar mary

I want to have courses hidden and also category selection. How can this be combined.

A second element relates to integration with woocommerce, can I define hidden courses there?


Avatar luc De Ceuster

Yes I have to agree with a previous comment. This sample scenario seems a bit backward in that I just want to hide specific courses from general public view and make them only visible in the grid to those who are enrolled. Is there a reverse method whereby I can tag hidden courses only and have it where only the assigned groups will see that tagged course?

I am looking to create a bespoke course for a client and I only want that client to be able to see this course – not the general visitors to the site.

Avatar Andrew

It’s a bit frustrating that a basic LMS feature like this requires fiddly workarounds. I get that it’s a limitation of using WordPress, but I’m surprised there isn’t a user-friendly solution created by LearnDash.

Avatar Jimbo

A simple solution to hide a course is the change its status to “Draft”.

Go to LearnDash LMS -> Courses and find the course you want to hide. Hover the mouse over the course name and click on “Quick Edit”. Once in quick edit view, change the Status from “Published” to “Draft” and click on the Update button. That’s all, now the course will be hidden!

If you want to unhide it, just repeat the process, only this time change the Status from “Draft” to “Published”.

Avatar Gabriel

Please give us a setting to hide courses completely. If you are not enrolled directly, are part of a group that gives access to the course, or a group leader for the course, or an admin, don’t show the course.

Avatar Tim van Rooyen

Comments are closed.

Your course could already be online!

We offer a 15 day money-back guarantee and have a world class community to help you get your course online today!

See LearnDash in action. Online Demo

Join Our Next Webinar!

LearnDash webinars are designed to teach you how to build, grow, and scale your course-building business. Join our team in one of our next live webinars.