LifterLMS Blocks: A Complete Guide to the Block Editor

Every LifterLMS block in the WordPress block editor, what each one shows, where it works, how enrollment visibility controls work, and practical layouts for course pages, lessons, sales pages and dashboards.

  • Add as a preferred source on Google
Illustration for “LifterLMS Blocks: A Complete Guide to the Block Editor”

LifterLMS was one of the first WordPress LMS plugins built for the block editor, and the blocks are now part of the core plugin. They let you lay out course pages, lessons, sales pages and student areas visually in the WordPress block editor, and show or hide any block depending on whether the visitor is enrolled.

This guide lists every LifterLMS block in the 10.x core plugin, groups them by where they are used, and shows layouts that work in practice. It is for course creators and site builders who design in the block editor. Block names and options were taken from the LifterLMS 10.3 source.

Finding the LifterLMS blocks

In the block inserter, the blocks sit in the LifterLMS Blocks category. Typing "LifterLMS" in the inserter search shows most of them. Some blocks only appear where they make sense: course blocks on courses, lesson blocks on lessons, and the LifterLMS Link block only inside a Navigation block.

When you create a new course in the block editor, LifterLMS starts it with a ready-made layout: a description paragraph, then Course Information, Instructors, Pricing Table, Course Progress, Course Continue Button and Course Syllabus. New lessons start with a paragraph, Lesson Progression (Mark Complete) and Lesson Navigation. New memberships get Instructors and Pricing Table. You can move, remove or restyle any of them.

When you open an older course in the block editor for the first time, LifterLMS adds these blocks to its content and stops outputting the same elements through the theme template, so nothing appears twice.

Course and membership page blocks

BlockWhat it shows
Course InformationLength, difficulty, categories, tags and tracks, each of which can be switched off, with an editable heading.
InstructorsThe course or membership instructors with avatars. Works on courses and memberships.
Pricing TableThe access plans with prices and enroll buttons.
Course ProgressA progress bar for the enrolled student.
Course Continue ButtonA button that takes the student to their next lesson.
Course SyllabusThe full list of sections and lessons, with lock and completion status.

These read the current course, so you place them on the course itself. To show course information somewhere else, use the blocks in the next section, which let you choose a course.

Lesson blocks

  • Lesson Progression (Mark Complete) outputs the Mark Complete button, or the quiz and assignment buttons when the lesson has them. Remove it and students have no way to complete the lesson, so move it rather than delete it.
  • Lesson Navigation shows previous and next lesson links.

Everything else in a lesson is ordinary content: video, text, images, downloads. If you use focus mode, enrolled students see lessons in LifterLMS's distraction-free layout, which adds its own Mark Complete footer and navigation.

Blocks you can use on any page

These blocks work in pages, posts and templates. Most take a course or membership you pick in the block settings.

BlockUse it for
CoursesA grid of course tiles, filterable by category, with order and number of courses. Can show only the visitor's own courses.
MembershipsA grid of membership tiles.
Pricing TableThe plans of any course or membership you select, for custom sales pages. See our pricing table guide.
Access Plan ButtonA single button linking to checkout for one access plan.
Course OutlineA course outline, full or just the current section, optionally collapsible.
Course SyllabusThe syllabus of a chosen course.
Course Progress with Continue ButtonProgress bar and continue button for a chosen course. Renders only for enrolled students.
Course AuthorThe author's name, avatar and optional biography.
Course Meta InformationAll meta information for a chosen course.
Course PrerequisitesA notice listing unmet prerequisites.
Course ReviewsReviews and the review form for a course.
My AchievementsThe current student's achievements.

Account, login and checkout blocks

  • My Account outputs the student dashboard, or login, registration and password reset forms for logged-out visitors. It belongs on the page set as the Dashboard Page in LifterLMS settings.
  • Checkout outputs the checkout page and belongs on the page set as the checkout page.
  • LifterLMS Login shows the login form, with an optional redirect. Nothing displays for logged-in users.
  • LifterLMS Register shows the registration form. Nothing displays for logged-in users.
  • LifterLMS Link, inside a Navigation block, adds dynamic links such as Dashboard, My Courses, My Grades, My Memberships, My Achievements, My Certificates, Notifications, Edit Account, Redeem a Voucher, Order History, Sign In and Sign Out.

The fields on registration, checkout and account forms are blocks too, edited under LifterLMS > Forms. That is a separate editor with its own field blocks, covered in LifterLMS registration and account forms. Certificates also have a Certificate Title block in the certificate editor.

Enrollment visibility: show blocks to the right people

This is the feature that makes LifterLMS blocks more than shortcodes with a preview. Most LifterLMS blocks, and most core blocks such as paragraphs, groups and buttons, have an Enrollment Visibility panel in the block settings. Display to has five options:

  • everyone
  • enrolled users
  • non-enrolled users or visitors
  • logged in users
  • logged out users

For the enrolled and non-enrolled options, a second setting chooses the scope: in this course (or in this membership), in any course or membership, in any course, in any membership, in all of the selected courses or memberships, or in any of the selected courses or memberships.

Visibility is checked on the server when the page is rendered, so hidden blocks are not sent to the browser at all. That makes it suitable for links and bonus content, not just cosmetic changes. It is still not a replacement for course access rules: protect lessons by enrollment and files with media protection.

Layouts that work

A course page that sells and serves

  1. Group the sales content (video, outcomes, testimonials, Pricing Table) and set it to non-enrolled users or visitors in this course.
  2. Group the student content (welcome note, Course Progress, Course Continue Button) and set it to enrolled users in this course.
  3. Leave the Course Syllabus visible to everyone, because buyers want to see what is inside.

Students land on a course page that gets them back to work, and visitors get a sales page, at the same URL.

A custom sales page

Build the page with normal blocks, add a Pricing Table for the course in the middle and Access Plan Buttons after each section. If you use a separate sales page, the course's Sales Page settings in Course Options can redirect non-enrolled visitors to it.

A members' home page

Combine Courses set to show only the visitor's courses, Course Progress with Continue Button for your flagship course, and a group of announcements set to enrolled users in any membership.

Reusable layouts with block patterns

If you build many courses, register a pattern so each new course starts from your layout. This example, for a small custom plugin, inserts a sales group visible only to non-enrolled visitors and a student group for enrolled students:

<?php
add_action( 'init', 'llmsx_register_course_pattern' );

function llmsx_register_course_pattern() {
	register_block_pattern(
		'llmsx/course-page',
		array(
			'title'      => __( 'Course page: sales and student views', 'llmsx' ),
			'categories' => array( 'text' ),
			'postTypes'  => array( 'course' ),
			'content'    => '<!-- wp:group {"llms_visibility":"not_enrolled","llms_visibility_in":"this"} -->
<div class="wp-block-group"><!-- wp:heading --><h2 class="wp-block-heading">What you will learn</h2><!-- /wp:heading -->
<!-- wp:llms/pricing-table /--></div>
<!-- /wp:group -->
<!-- wp:group {"llms_visibility":"enrolled","llms_visibility_in":"this"} -->
<div class="wp-block-group"><!-- wp:llms/course-progress /-->
<!-- wp:llms/course-continue-button /--></div>
<!-- /wp:group -->
<!-- wp:llms/course-syllabus /-->',
		)
	);
}

The visibility attributes are the same ones the Enrollment Visibility panel writes, so you can open the pattern in the editor and adjust them visually.

Common mistakes

  • Deleting Lesson Progression. Students can no longer complete the lesson.
  • Two pricing tables on one course. The template already had one, then a second was added. Check the whole page.
  • Testing visibility as an administrator. Admins see content differently. Test as a student and as a logged-out visitor.
  • Using visibility as access control for files. A hidden block hides the link, not the file. Protect the file.
  • Caching enrolled content. Full-page caches must not serve logged-in views to visitors. Exclude logged-in users from page caching.

Frequently asked questions

Do I need the separate LifterLMS Blocks plugin?

No. Since LifterLMS 10.1 the blocks are bundled in the core plugin and the standalone plugin is no longer released separately.

Are there shortcode equivalents?

Yes. Most blocks render the same output as a LifterLMS shortcode, for example [lifterlms_pricing_table] and [lifterlms_access_plan_button], which is useful in page builders and widgets.

Can I use LifterLMS blocks with a page builder?

Blocks only work in the block editor. Page builders such as Elementor have their own LifterLMS widgets or can use the shortcodes.

Can I style the blocks?

Many blocks support standard block styling, and LifterLMS buttons inherit your theme's button styles. Further changes need CSS in your theme.

What to do next

Open one course, set up the sales and student groups described above, and test the page as a visitor and as an enrolled student. Once it works, save it as a pattern and use it for every course.

If you need custom blocks, such as a cohort schedule, a progress dashboard across several courses or a block that pulls data from another system, our LifterLMS plugin development team builds them properly. Tell us what you want on the page.

Add LifterLMS Expert to your preferred sources

Add lifterlmsexpert as a preferred source on Google, or open this article in your AI assistant to use it as a source.

  • Add as a preferred source on Google
Free consultation

Prefer expert help over DIY?

Skip the trial and error. Get specialist LifterLMS help and ship faster.

Talk to a LifterLMS Expert Explore our services

Replies within one business day