Creating a LearnDash User Profile Page

Online courses are only part of your WordPress learning management system.

Another key aspect is the learner profile. Specifically, a place where your students can view their progress, achievements, general activities and more.

The amount of detail you include on a profile is completely up to you, but at a minimum you should include:

  • Basic user info (such as name and/or email)
  • Enrolled courses
  • Progress in enrolled courses
  • Quiz performance
  • Earned certificates (for courses & quizzes)

The good news is that the core LearnDash front-end profile will take care of all these for you. So if all you want is this information, simply insert the following shortcode onto a page:


And that’s it!

But what else is worth including? Well, you could include the courses a user has access to but in a grid format. Use the free Course Grid add-on for LearnDash you can display these courses with their title, featured image, description, and current course progress bar.

To accomplish this, all you need to do as add the following shortcode:

[ld_course_list mycourses="true" progress_bar="true"]

This will produce something like:

Use this in conjunction with the profile shortcode or by itself to give users a quick look into what they have access to and their progress.

We have seen that the profile is also a great place to place system-wide announcements. Things like announcements for new courses, planned maintenance times, and anything else that your learners should know.

As is the case with WordPress there are often multiple ways to accomplish the same desired result. One way we have seen this done is by creating the announcements as a blog post with a specific tag or category. Then, use the WordPress widget functionality to show just blog posts that match that category.

To prevent this widget from displaying on all pages, create a custom sidebar where you designated visibility only on the page that contains the profile shortcode. This can easily be done by using this free plugin.

There are many ways you can go with your learner profile. You could also decide to include any forums the user has access to based on their course enrollment for example. Another thing to keep in mind is that the theme you choose may include its own stylized learner profile.

In the end you should only include information on the profile page that makes sense for your users. Don’t clutter it with information “just because”. Make the profile the user’s central-hub for accessing courses and interacting with others.


Justin Ferriman is the co-founder and CEO of LearnDash, the WordPress LMS trusted by Fortune 500 companies, major universities, training organizations, and entrepreneurs worldwide for creating (and selling) their online courses. Twitter | LinkedIn

8 Responses

  1. Hi Justin,
    Thank you so much for the great work you’re doing and the constant upgrades. It’s definitely one of the strengths of your work and LD.
    I have been struggling with getting the “edit profile” link under the avatar in the [ld_profile] page to point a customized profile page that the user can edit. It currently goes to a dummy comments page. Is there anyway to adjust it or take it out altogether?

      1. Hey Justin .. I have done this twice – and am just getting tutorials about how to insert the shortcode!

        What options are there .. if you could outline these for me I would much appreciate it – as contacting support has not been helpful at all in this instance.

        1. Hi Ant-
          What are you trying to do exactly? This particular page is about inserting the profile shortcode with perhaps also adding the course list shortcode.

  2. Hi Justin,

    Thanks for the great plugin. Just wanted to note that your example code block is missing an, “s” in “progress” so you might want to update the post.

    Should be: [ld_course_list mycourses=”true” progress_bar=”true”]


  3. Hi Justin, thanks for this article. I think one thing changed:
    [ld_course_list mycourses=”enrolled”]
    instead of [ld_course_list mycourses=”true”]

Leave a Reply

Your email address will not be published. Required fields are marked *