By default, LearnDash loads all of its CSS files on every single page of your WordPress site. But many of your pages don’t include any LearnDash elements, and therefore don’t need this CSS.
This article will explore a few different ways to conditionally load LearnDash styles only on the pages that need it.
This is highly dependent on your specific setup, and may not work for everyone. Particularly, if you’re using shortcodes and/or Gutenberg blocks on non-LearnDash pages, the default code here will cause problems. You’ll need to customize it to also include those other pages where you’re using shortcodes, blocks or widgets in a sidebar.
Justin from the LearnDash Facebook group asked if there was a way to automatically add numbers before each lesson using the BuddyBoss theme + platform. I was pretty confident the answer was yes, so I rolled up my sleeves and got to work.
Not only can we do this for BuddyBoss, but I’ll provide you with the CSS to do this for all themes using the LearnDash 3.0 template, as well as those using the Legacy template. I’ll even throw in some code to auto-number lessons & topics in the Uncanny LearnDash Toolkit Dashboard.
This is the perfect solution for those who want to display lesson/topic numbers in navigation & course lists, but not include the number in the actual lesson or topic title. This way, the numbers don’t show up at the top of each individual page. They only appear when viewing lists & navigational elements 👍.
It also works great for those who switch lessons & topics around or use them in multiple courses with shared course steps.
When Focus Mode first came out in LearnDash 3.0, you could add your logo to the header of Focus Mode, but it didn’t link anywhere. It was just a static image.
Starting in LearnDash 3.1, the logo now automatically links back to your site’s homepage. Personally, I see this as an improvement, but… what if you want it to link somewhere else? Or remove the link entirely and go back to how it was prior to 3.1 (not recommended)?
I’ll walk you through the steps on how to change the URL of the LearnDash Focus Mode logo, as well as provide a few examples.
If you’re using a page builder like Elementor or Beaver Builder with LearnDash, you might be having an issue with your LearnDash course page. The content you add via Elementor is centered on the page, but the LearnDash progress bar at the top, and the “Course Content” table at the bottom, are stretched out to 100% of the screen.
Take a deep breathe. I’ll show you a really simple fix that takes under a minute.
If you’re using Elementor with LearnDash, and you like to tinker with your layouts, this one’s for you. We’re going to walk you through setting up a course page template using Elementor Pro’s Theme Builder. This only works with the Pro version, so if you’re still on free and want to give this a try, upgrade to Pro →
If you have really long course names, it can cause an issue when they are displayed in the LearnDash breadcrumbs, especially in focus mode. And since you can get back to the course page by clicking on the course title in the sidebar navigation, you might want to remove the course name from the breadcrumbs. This article will show you how to do that with CSS.
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.
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.