Creating “Hidden Courses” in LearnDash

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:
- Course List shortcode
- 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 “yourdomain.com/courses” is redirected to the new page (i.e. “yourdomain.com/available-courses”). 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!
Don't Miss Out!
Comments are closed.
You might also like...
All postsMay 28th, 2019
LearnDash 3.0
June 23rd, 2022
What’s the Best Pricing Model for Online Courses?
June 16th, 2022
How To Price An Online Course
June 9th, 2022
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).
Got it. Thanks
When you redirect the courses page to the new courses page, courses are not accessible!
I used this code in htaccess:
Redirect 301 /courses https://www.domain.net/courses-newpage/
Courses still use ‘/courses’ in their URL…
Is there a way to hide the Course Materials from non enrolled users?
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.
I also want to achieve that, is that possible?
This plugin might help – haven’t tested it in this specific scenario though!
https://wordpress.org/plugins/search-exclude/
A “Hide course” after (select date) setting would be great 🙂
hello,
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?
Luc
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.
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.
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”.
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.