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

15 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”]

  4. Hi,

    I’m using [ld_course_list mycourses=”enrolled” col=”3″ progress_bar=”true”] and numbers of variation as shared on this thread but doesn’t seems to work on my divi site.

    Appreciate if you could advise?

    1. Hi Yanti — If you’re having trouble with the course grid columns, I recently added an update to my plugin that will likely solve the issue. I’ve noticed several themes that also use Bootstrap for rows/columns (as the Course Grid add-on does) have issues with column alignment.

      Feel free to give it a try. It will also update some of the styles of the course grid elements.

  5. I’ve just created my first Learndash Course. It was moderately easy.

    Now I have the names and emails of people who need to take the course. For free, but I don’t want others to have access.

    I thought this post would tell me. It didn’t, and I’ve been squirrelign around the Learndash support for a few days to find out. Okay I’m a bit of a technophobe. But still, if something so fundamental is so hard to find out, it needs to improve dramatically.

    Please let me know how to enrol users easily.


  6. I couldn’t find a way to show the assignments of the courses at the user profile similar to the course quizzes. Is there a way to show an overview of the assignments to a user?
    Many thanks and best regards

Leave a Reply

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