A few people have asked me if I could create a “dark mode” for LearnDash’s focus mode. The answer is yes, but it does come with a few caveats. Overall though, I was able to replicate the same colors in YouTube’s dark mode and apply them to the LearnDash Focus Mode experience.
If you’re interested in using a dark mode with LearnDash, I’ll provide you with the custom CSS below.
It can be a powerful tool for designing beautiful landing pages, including those used in your online courses. Since LearnDash doesn’t provide much in the way of design for course, lesson & topic pages, Elementor is a great tool to use alongside LearnDash.
The Big Problem: Why can’t you select the course, lesson or topic post type when creating a “Single” Elementor template with the Theme Builder?
Thankfully, there’s a fairly easy solution. I’ll explain the two main steps below.
This article will answer that question, provide an update for what we’re planning in the coming weeks & months, and lay out a timeline for when it’s all happening.
UPDATE: June 23, 2019
Design Upgrade Pro is now 100% compatible with the LearnDash 3.0 active template, including 20+ new options for focus mode, profile, tooltips & more.
Don’t worry, you can continue using all the old options with the Legacy template. Our plugin automatically detects the template you’re using, and provides different Customizer options for each 🙌.
We’re still working on videos & updating our product page, but rest assured, there are TONS of awesome features available right now for 3.0 😀.
For the rest of this article, if I mention “3.0,” it is in relation to the “LearnDash 3.0” active template, NOT version 3.0 of the LearnDash plugin. You can safely update to version 3.0 of the LearnDash core plugin.
“Legacy” vs. “LearnDash 3.0” Active Template
If you’re upgrading from LearnDash 2.x, you will default to the Legacy template. You can continue to use Design Upgrade just like you always have. You shouldn’t notice any difference on the front-end of your site.
If you’re brand new to LearnDash, and starting with version 3.0+, you’ll default to the LearnDash 3.0 template. Design Upgrade works with either template, so feel free to switch back & forth to find the design you like best.
Design Upgrade Pro is now fully compatible with the LearnDash 3.0 template.
We will continue to support those who want to remain on the Legacy template (for as long as LearnDash provides it as an option) 👊.
Because LearnDash 3.0 adds several new features, there are more opportunities for improved design. We’ll be releasing new features somewhat steadily over the next several months.
Our first step is to port over as many existing styles from the Legacy template as we can to the 3.0 theme. Because the 3.0 design is structurally unique, and outputs some different content than the Legacy template, not all current features will be available in 3.0 (but we’ll maintain Legacy support so you can continue to use the plugin exactly as you are today, if Legacy is your jam).
The 3.0 template still supports…
all progress bar styles
most course grid styles (ribbon colors were excluded in 3.0)
most course navigation widget styles
most course content table styles (and a bunch of new ones 😍)
all button styles (we added hover styles in 3.0 👍)
The course content table options will look different for users of the 3.0 template. That’s because the entire layout has changed, and the same options just don’t apply. But we have added options to customize the course content table, and they’re even better than in LD2.
Phase 1 is complete, and there are already more options for the LD3 template than there were for Legacy. But we’ll continue to add new features over the coming months.
If you have specific feature requests for design customizations you’d like to see with the 3.0 template, please leave them in the comments.
Possible New Features for 3.0
Breadcrumbs: hide them globally (you can already do this on focus mode pages), change the bg color
Alerts: several color options for alerts, broken down by type (regular, warning/error, success/completion, etc.)
Profile: possibly adding 1-2 different layouts for the top section
Status Labels: possibly adding color options for status labels
Phase 2: New features will begin rolling out for the 3.0 template gradually, based on user feedback (so please comment below what you’d like to see).
As always, I’m here to help. If you have any questions at all, don’t hesitate to ask. [email protected]
Thank You 🙂
And a big thank you to all of those who have supported me so far by using and/or purchasing the plugin. The reaction was far better than I ever expected, and you have inspired me to continue innovating and building a better product. So thank you 🙏.
I also greatly appreciate your patience. I know many of you were eager to get your hands dirty with those new 3.0 features. I would’ve loved to have all this ready for the launch on May 28th, but I pride myself on remarkable craftsmanship, so the wait time ensured I could produce the same quality of work you’ve come to expect.
I have done everything in my power to over-deliver 👊.
Will you continue to add new features to the Legacy template?
Probably not. The current feature set will remain, and we’ll continue to provide support if you have questions, but all future updates & features will be dedicated to the 3.0 template.
Design Upgrade for LearnDash 2.0 (Free) (Changelog)
A lot of work went into the free version of Design Upgrade for LearnDash 2.0, which brought about compatibility with the new “LearnDash 3.0” active template. We kept track of most of the noteworthy changes we made. It’s not 100% exhaustive, but if you don’t like surprises, you can read through this list to get an idea what will happen if you’re using the “LearnDash 3.0” template and upgrade to version 2.0 of our plugin.
If you’re still on LearnDash version 2.x, or using the “Legacy” template, you will not see any changes. Things will continue to work as they always have.
Revert font sizes & line height to the theme’s default, instead of forcing 16px & 1.5em respectively.
Status Indicators: Remove letter spacing & adjust font size
Focus Mode: Sidebar Tray: Adjusted spacing throughout
Focus Mode: Sidebar Tray: Larger clickable areas for lessons & topics
Focus Mode: Sidebar Tray: Reduced the overall vertical space that items occupy
In today’s world, shared accounts are commonplace. I bet if you asked 10 friends if they’ve ever used someone else’s Netflix or Amazon account, at least half would say yes. That might not be a huge deal for a company as big as Netflix—with 138 million paid subscribers (source) and $15.8 billion in revenue in 2018 (source)—but for your small business selling online courses, it matters.
You’ve worked hard to create an online course that provides value to your students. The last thing you want is for students to share login information with a friend, who then gets to take your course for free.
This article will outline how you can prevent students from sharing login information for your LearnDash site (or any WordPress membership or LMS). So far, I’ve identified three different solutions, which I’ll outline below:
Social login – require a user to connect via Facebook, LinkedIn, Google or another account that they wouldn’t want anyone else to access
There is no guaranteed way to prevent multiple students from sharing login information. You can make it more difficult, but you can’t completely prevent it from happening.
Should You Prevent Students from Sharing Logins?
Before implementing a solution, I encourage you to consider if it’s worth it. I understand your desire to get paid for your work. You’ve spent hours creating awesome content. You deserve to be compensated and not taken advantage of.
But did you ever wonder why even the biggest online giants (Google, Netflix, Amazon, Spotify, etc.) don’t prevent the sharing of login information?
They certainly have the resources. They could probably have it up-and-running in half a day. And yet, while most of them employ some form of advanced security (email notifications of suspicious logins, security questions, backup phone numbers, two-factor authentication, etc.), none of them completely prevent anyone from sharing login information.
I suspect there are at least two reasons, both of which you should consider for your LMS:
They want you to be able to login from anywhere, at any time (because we travel, and demand convenience). How would they truly know if it’s you trying to login, or one of your friends?
They want logging in to be as easy & seamless as possible, so that you come back and use the service. If you had to go through extensive verification every time you logged into Amazon, would you find somewhere else to shop?
Hopefully, you’ve given it some thought. If you’d like to explore the options, here we go…
☝ Only Allow One Login Per Account, at a Time
This method will prevent simultaneous logins with the same account. A student could still share their login information with a friend, and as long as the real student is logged out, the friend could log in.
If your courses are released on a specific schedule, or only run for a short period of time, this could be an excellent option. Because all students need to complete the course at the same time, this method would only allow one person to be logged in, taking the course, at a time.
The WP Bouncer plugin will take care of everything behind the scenes.
User A logs in as “student”
User B then also logs in as “student”
The next time User A tries to load a new page, they are kicked out
User B continues to use the site
If User A logs back in again, User B is kicked out
They could continue this pattern indefinitely. I think the idea is to show both users (the paid student & the “free friend”) that it’s not worth it. They’ll keep booting each other out and neither will be able to use the site freely.
Of course, if they communicate their schedules, and make sure one is always logged out before the other logs in, they’ll be able to get around it. Thus why this is more of a deterrent than a complete solution.
Options & Filters
By default, the user who gets kicked out will see a warning message:
However, if you know how to use WordPress hooks, there are a few filter hooks available.
ignore admins (allow admin accounts to be logged into simultaneously)
custom redirect URL (upon logout)
change the number of simultaneous logins allowed
📱 Enable Two-Factor Authentication (2FA)
A slightly more advanced option is to use two-factor authentication (2FA). This method takes a different approach than the WP Bouncer plugin. With 2FA, each time a user tries to login to their account, they will need three things:
username or email address
a one-time, randomly-generated code sent to a single device
KEEP IN MIND
This method will make it more difficult to login—not just for the mooch who is trying to access your course for free, but also for the person who paid for it.
The additional code is typically a 4-6 character code sent via email, SMS text message, or generated via an app on a user’s smartphone. It is only valid for a very short period of time (30 seconds to 5 minutes), before a new code is needed.
There are also some two-factor authentication apps you can install on your phone, and simply tap a button to confirm your login.
Technically, a student could receive a 2FA code on their phone, and still have time to share it with a friend, who could then login. But because of the short lifespan of the code, the student and friend would need to be in immediate communication with one another.
With LearnDash & WordPress, there are multiple plugins that enable two-factor authentication. I recommend you read through the details of each, and choose the one that works best for you.
Two-Factor – A super-simple plugin that could eventually get merged into WordPress core. Limited options.
If you already use the premium version of either iThemes Security or Wordfence, they both offer two-factor authentication as well. You might want to consider using their options before installing another plugin.
👥 Social Login
Personally, I’m not a fan of requiring a user to authenticate with a third-party service. Some users might not have a Facebook account, or just don’t want to connect Facebook with yet another application (Facebook isn’t necessarily known for protecting your data 🤨).
However, most students would not be comfortable providing access to a very personal social media account. If you required them to connect to a social account when they log in, it’s unlikely they would share this access with anyone else.
Social Login Plugins
There are quite a few social login plugins to choose from, but I’d probably recommend this one:
I haven’t personally used it, but I’ve done some research, and it appears to be the best all-around option. Please let me know if you’ve used it, or have other recommendations.
I certainly realize the desire to prevent the sharing of login information, but you should consider if it’s worth the added frustration it could cause to your actual students. If you decide to implement something, keep a close eye on any student feedback you receive.
If you have another suggestion for how to prevent multiple logins on the same account, please share it in the comments.
I’ll briefly outline below how I made this happen, but here’s a video explaining how I set up a certification track in LearnDash. If you need to offer a certificate after the completion of multiple courses, this is for you.
Award a certificate after completing multiple courses in LearnDash
With LearnDash, it’s easy to award a certificate upon completion of one course. You can also easily provide a certificate upon completion of a quiz.
However, if you need to award a certificate upon completion of multiple courses, it’s not as easy. Here’s the best way I found how to award a certificate after completing several courses.
Creating a New Course for Just the Quiz
Create a new course that just contains one quiz
Set the course to FREE (this makes the course page viewable to everyone, but you have to be logged in to access it)
Set course prerequisites for this course (in my case, 3 courses had to be completed in order to take a final exam to get the certificate)
Apply your certificate to this course
Creating the Quiz
Now create the quiz and place it within this course
No prerequisites for the quiz
DO NOT apply any certificates to the quiz
(optional) Add in a completion percentage in order to pass the quiz (ex: they need to score a 70% or higher to pass the quiz)
This prevents them from accessing the certificate until they have scored a 70% or higher.
Use Shortcodes to Enhance the Experience
I also used some shortcodes & messages to help enhance the experience.
Place a message at the top of each prerequisite course that only shows up for those who have completed it [course_complete] message [/course_complete].
I provided a link to the final exam course, as well as a link to purchase any other courses that they might not have bought yet (example: If they only bought 1 of the 3 courses in the certificate track, they’ll have a link to buy the other 2).
If you have another way of setting this up, or any creative idea for achieving the same thing, I’d love to hear it. Please share in the comments.
I’m still in the early stages of collecting the best LearnDash example sites, but here are some to get you started.
I hope to be expand upon this collection, and maybe even do a few mini video-style podcasts with some of these creators. I’ve tried to include important tools, themes & plugins they used, but a video walkthrough/explanation would be even more badass. One day, perhaps.
Until then, please enjoy this collection of LearnDash inspiration.
By default, when a visitor—anyone not logged in to your site—lands on a LearnDash course page and tries to click a link in the course content table (it could be to a lesson, topic or quiz)… the page just reloads.
LearnDash has built-in course protection, so this is in place to stop a random visitor from accessing a course that they don’t have access to. The problem is that it redirects them back to the same page they are already on, essentially just reloading the course page.
This is less than ideal. But there’s a simple way to redirect these clicks on the course content table to any page of your choice:
a login page
a sales page powered by an ecommerce or membership plugin
This does involve a little PHP code, but don’t let it intimidate you. I’ll walk you through it.
Use the Code Snippets Plugin
The Code Snippets plugin is an alternative to adding code to your theme’s functions.php file. I believe it’s a much safer and more organized way to maintain code, especially for beginners and non-coders.
We’ll be using this plugin to implement the code to redirect clicks on the course content table.
It’s a good idea to use this plugin for ALL future PHP code snippets that you would otherwise put in your functions.php file. And please don’t worry about plugin overload or “Ugh, I really don’t want to add another plugin to my site…” Code Snippets will not slow down your site.
Install & Activate the Plugin
In your WordPress admin area, navigate to Plugins > Add New
Search for “code snippets”
Install & activate the plugin (author: Shea Bunge)
Code for Course Content Table Redirects
Now that you’ve got the right tool in place, let’s add the code to actually implement our redirect.
Navigate to Snippets > Add New
Give your snippet a title. This is just internal naming, so choose anything you’d like.
In the “Code” section, we’re going to add the following:
Where it says https://learndash.com/, you would change that to the page on your site that you want to redirect people to. For example, it could be:
https://yoursite.com/login/ – if you’re using a custom login page
https://yoursite.com/product/name-of-product/ – if you’re using an ecommerce platform like WooCommerce
https://courses.yoursite.com/enroll-today/ – if you have one general sales page for all of your courses (perhaps you used a page builder to create a custom landing page, and are hosting your courses on a sub-domain)
The possibilities are endless. You can use any URL in the world! 🌏
(Optional) Description & Tags
It’s totally optional, but you can give your code snippet a description and/or some tags. These are just for internal organization, so use them as you’d like… or not at all.
Run on Front-end Only
The final option is WHERE you’re going to allow this code to run. You can run it in the admin area, the front-end of your site, or both.
Choose Only run on site front-end
Because this code only applies to site visitors accessing your LearnDash course content table, there is no need to have it executed in the admin area. So just choose to run it on the front-end only.
Save & Activate
The final step is to click the “Save Changes and Activate” button at the bottom. Then navigate to a course page in a private browsing window (or logout of your current session) and click a link in the course content table. It should redirect you to the URL that you specified.
When you use the LearnDash course navigation widget, and navigate to a lesson, topic or quiz page, you’ll see a “Return to [Course]” link appear at the bottom. No surprise, this brings you back to the course page.
But what if you wanted to customize the “Return to [Course]” link?
🚫 Hide the “Return to” part and just display the course title?
👈 Add a back arrow before the course title?
👆 Move the entire link to the top of the navigation?
Do you offer a lot of similar courses? Wouldn’t it be great if you could just clone one and start from a template? Well, thanks to a few different LearnDash add-ons, now you can.
There are 3 plugins that offer the ability to clone LearnDash content, and each one provides a different set of features. One plugin can do it all, but it’s not free. The other 2 options are free, but each have some drawbacks. I’ll evaluate the options & help you choose the best one for your situation.