Skip to main content

LearnDash on WordPress

LearnDash Course and Lesson Testimonials

LearnDash runs inside WordPress, so pasting the embed works as in our WordPress guide. What LearnDash changes is who sees which page and how lessons are framed: course page content shows to everyone, Focus Mode drops your theme’s footer and sidebars from lessons, and three shortcodes split students, visitors and graduates.

  • A course page widget only for visitors not yet enrolled
  • Lesson placement that Focus Mode keeps
  • A testimonial ask shown only to graduates

LearnDash code

Course page, lesson and finish line

Enter the widget id. Part 1 goes in the course page content, Part 2 in a lesson or topic, and Part 3 near the end of the course for students who have completed it. Replace COURSE_ID and the link placeholder in Part 3 by hand.

Shown in StoryProof when you copy a widget’s embed code.

Part 1 · Course page, visitors not yet enrolled

LearnDash LMS › Courses › edit course › HTML or text area with the visitor shortcode

[visitor]
<div data-storyproof-widget="YOUR_WIDGET_ID"></div>
<script src="https://app.storyproof.io/embed.js" async></script>
[/visitor]

Part 2 · Inside a lesson or topic

LearnDash LMS › Lessons (or Topics) › edit › lesson content

<!-- Lesson or topic content: sits between the breadcrumbs and the
     next and previous buttons, so it survives Focus Mode -->
<div data-storyproof-widget="YOUR_WIDGET_ID"></div>
<script src="https://app.storyproof.io/embed.js" async></script>

Part 3 · Ask graduates for a testimonial

Course page or final lesson › course_complete shortcode

[course_complete course_id="COURSE_ID"]
<p>You finished the course. How did it go?</p>
<a href="YOUR_STORYPROOF_COLLECTION_LINK">Record a short testimonial</a>
[/course_complete]

Check the course page twice, logged out and as an enrolled test student, then open a lesson with Focus Mode on to make sure the widget sits in the content area.

The id you type only rewrites the code on this page. Nothing is stored.

The problem, solved

Student proof in LearnDash: who sees what

  • Problem 1

    Enrolled students still see the sales proof

    LearnDash shows editor content on a course page to everyone, so a widget meant to sell the course greets students who already paid.

  • Problem 2

    The footer widget vanished in lessons

    Focus Mode removes main navigation, footer elements and sidebars from lessons, topics and quizzes, taking any widget placed there with them.

  • Problem 3

    We never ask at the finish line

    The best moment to ask is right after a student completes the course, and by the time someone emails a survey weeks later the feeling has faded.

  • Problem 4

    Lessons are narrower than the course page

    Focus Mode sets the lesson content width, so a wall that fits the course page may feel cramped in a narrow lesson.

  • Problem 5

    Student feedback is not all public

    Some completions bring candid criticism that belongs with the instructor, not on the sales page.

In StoryProof

Set it up in LearnDash

Step 1 of 5

Prepare two widgets

In StoryProof, make one widget for prospects on the course page and a compact one for lessons, each with its own approved stories.

LearnDash visibility tools for testimonials

From LearnDash documentation, read 2026-11-13.
ToolWho sees the contentUse for
visitor shortcode or LearnDash Visitor blockPeople not enrolled in the courseThe sales widget on the course page
student shortcode or LearnDash Student blockPeople with access to the coursePeer stories for students on the course page
course_complete shortcode or blockStudents who completed every stepThe ask for a testimonial
Course Content Visibility settingOnly the lesson list, not editor contentNot for widgets; it does not hide what you add in the editor

Before you start

LearnDash limits

  • Focus Mode needs the 3.0 template

    LearnDash says Focus Mode does not work with the Legacy template. On Legacy, lessons keep your theme layout and its footer and sidebars.

  • Course materials are public

    LearnDash shows the materials tab to everyone, including visitors who are not enrolled. Wrap anything there in the student shortcode if it is meant for students.

  • StoryProof does not read progress

    Completion targeting comes from LearnDash’s shortcode. StoryProof is not a LearnDash integration and cannot see enrolment or progress.

  • Badge on lower plans

    Widgets show a "Powered by StoryProof" badge until Pro.

  • LearnDash docs as of 2026-11-13

    Settings and shortcode names follow LearnDash documentation as read on 2026-11-13. The steps have not yet been tested on a live LearnDash course.

FAQ

Questions people ask

Short answers to what usually comes up next.

Can I put the widget in the Focus Mode header or sidebar?

No. LearnDash describes the Focus Mode header and course navigation sidebar as dynamic content you cannot edit. The lesson content area is the place.

Does the Course Content Visibility setting hide my widget from visitors?

No. It only controls the course content list. LearnDash states that editor content on the course page is always visible to everyone.

What about a custom sales page outside the course?

The visitor shortcode needs a course_id when it sits on a page that is not the course itself, so LearnDash knows which enrolment to check.

Is quiz feedback the same as a testimonial?

No. Quiz answers stay in LearnDash. A testimonial comes through your StoryProof collection link and is only published once you approve it.

Still have a question? Ask the StoryProof team or book a demo.

Turn course completions into proof

Ask graduates with one link, approve their stories and show them to visitors who have not enrolled yet.

Sources

  1. Focus Mode, LearnDash documentation (Nexcess). Checked 2026-11-13.
  2. Course Display and Content Settings, LearnDash documentation (Nexcess). Checked 2026-11-13.
  3. LearnDash Shortcodes and Blocks, LearnDash documentation (Nexcess). Checked 2026-11-13.
  4. Page Builders and LearnDash, LearnDash documentation (Nexcess). Checked 2026-11-13.

Last updated 2026-11-13.