Customize the LifterLMS Registration Form, Checkout and Account Forms

How the LifterLMS forms editor works: the three core forms, which fields are required, editing fields with blocks, visibility and reusable fields, where registration appears, and how to add custom validation.

  • Add as a preferred source on Google
Illustration for “Customize the LifterLMS Registration Form, Checkout and Account Forms”

Every student account on a LifterLMS site is created through one of three forms: the checkout form, the registration form or, for changes later, the edit account form. Out of the box they ask for a full postal address and phone number, which is more than most course businesses need and more than many buyers want to type.

This tutorial explains how to customize the LifterLMS registration form and its two siblings with the block-based forms editor. You will learn which fields you can remove and which you cannot, how field settings and visibility work, where registration actually appears on your site, and how to add validation rules in code when the editor is not enough.

It is written for site owners and developers on LifterLMS 5.0 or later, which is when the forms editor replaced the old field settings on the Accounts tab.

The three core forms and where they appear

Go to LifterLMS > Forms. You will find three forms, one per location:

Form titleLocationWhere it is used
Billing InformationCheckoutNew user registration and updates to existing users' details during checkout and enrollment
RegisterRegistrationOpen registration on the Student Dashboard, and anywhere the [lifterlms_registration] shortcode or registration block is used
Edit Account InformationAccountThe edit account area of the Student Dashboard

These are the only forms core uses. You cannot add a fourth location, and deleting a core form will break the area that depends on it. If something goes badly wrong in the editor, each form has a Revert to Default option that restores the original content.

Editing forms needs the manage_lifterlms capability and the WordPress block editor. If your site uses the Classic Editor plugin for posts, the forms still open in the block editor.

Default fields and which ones are required

The default checkout and registration forms contain, in order: email address, password, first and last name, address, and phone. The registration form adds a voucher field labelled "Have a voucher?". The account form puts name, display name, address and phone first, and email and password at the end.

Some fields cannot be removed:

  • Checkout and registration must contain User Email and User Password.
  • Account must contain User Email, User Password and User Display Name.

Everything else is optional. The LifterLMS documentation on setting fields to required, optional or hidden walks through the editor screens. A sensible minimal checkout form for a course business is email, password, first name and last name. Add country back if your accountant needs it for tax.

Edit a form with field blocks

  1. Go to LifterLMS > Forms and click Edit on the form.
  2. Open List View from the editor toolbar so you can see the structure, including field groups.
  3. Select a field block. Its settings appear in the sidebar.
  4. To remove a field, select it and choose Delete from the block's options menu.
  5. To add a field, click the inserter and look under the User Information category.
  6. Click Save.

The User Information blocks map to standard user data: User Email, User Password, User name (first and last name), User Display Name, User Address (street, additional information, city, country, state and postal code), User Phone, User Login and Voucher Code Redemption.

Ordinary blocks work too. Add a heading, a short paragraph explaining why you need a field, or a columns block to lay fields side by side.

Field settings

Selecting a field shows settings such as:

  • Required: whether the field must be filled in. Email and password stay required.
  • Field Width: how many columns the field spans, for side-by-side layouts.
  • Placeholder and the field label and description, edited directly on the block.
  • Confirmation Field: for email and password, whether a second "confirm" input is shown. Removing the email confirmation makes checkout shorter; keep password confirmation unless you add a show-password toggle.

Reusable fields

Several default fields are stored as reusable blocks shared between forms. Change the label of a shared email field on the checkout form and it changes on registration and account too. If you want a change on one form only, detach the block from the shared version first.

Custom fields: what core includes and what needs the add-on

Collecting information that is not part of a standard WordPress user, such as a job title, company name or how someone heard about you, is the job of custom fields. The LifterLMS Custom Fields add-on provides field types including text, textarea, number, dropdown, checkboxes, radio buttons, phone, email and URL, with each value stored as user meta under a key you choose. It also lets you assign different checkout forms to specific courses, memberships or access plans. See getting started with LifterLMS Custom Fields.

The Custom User Information category in the inserter is where those fields appear. What you see there depends on the add-ons installed on your site. For a deeper look, including showing collected values back to the user, see our guide to LifterLMS custom fields on forms.

Show or hide blocks by user state

Blocks in LifterLMS forms, and elsewhere on a LifterLMS site, can be shown only to certain visitors. In the block sidebar you can limit a block to logged in users, logged out users, enrolled users, or non-enrolled users and visitors.

On forms this is handy for messages. For example, on the checkout form you can add a paragraph visible only to logged out users that says "Already have an account? Log in first to keep your progress in one place."

Two form-level settings are also worth knowing: Display Form Title, which shows the form's title above it, and Free Access Plan Form Title, the heading used when the checkout form is shown for a free plan.

Where the LifterLMS registration form actually appears

A common surprise: editing the Register form changes nothing visible, because registration is not switched on.

  • To let visitors register from the Student Dashboard, go to LifterLMS > Settings > Accounts and enable Open Registration. Logged-out visitors then see the registration form beside the login form.
  • To put registration on any other page, use the [lifterlms_registration] shortcode or the registration block. This works regardless of Open Registration.
  • To require agreement to your terms on both checkout and registration, enable Terms and Conditions on the Accounts tab. The checkbox is added to the bottom of the forms automatically; you do not add it in the editor.

If you only sell courses and never want free sign-ups, leave Open Registration off. Accounts are then created only at checkout.

Usernames

By default LifterLMS does not ask for a username. Students log in with their email address. If you add a User Login username block to a form, LifterLMS treats usernames as enabled for the whole site, and login and password reset forms accept usernames as well as emails. Only do this if you have a reason, such as a community where names are public, because it adds a field and a common source of "I forgot my username" tickets.

Custom validation with a filter

The editor controls which fields exist. For rules about what the values must be, use the lifterlms_user_registration_data filter (or lifterlms_user_update_data for updates by logged-in users). This example only accepts registrations from company email domains, which suits internal training portals:

<?php
/**
 * Plugin Name: LLMSX Company Email Only
 */

add_filter( 'lifterlms_user_registration_data', 'llmsx_require_company_email', 10, 3 );
function llmsx_require_company_email( $valid, $posted_data, $location ) {

	if ( is_wp_error( $valid ) ) {
		return $valid;
	}

	$allowed_domains = array( 'example.com', 'example.org' );

	$email  = isset( $posted_data['email_address'] ) ? strtolower( trim( $posted_data['email_address'] ) ) : '';
	$parts  = explode( '@', $email );
	$domain = end( $parts );

	if ( ! in_array( $domain, $allowed_domains, true ) ) {
		return new WP_Error(
			'llmsx-company-email',
			__( 'Please register with your company email address.', 'llmsx' )
		);
	}

	return $valid;
}

The filter runs for new users on every form location, including checkout. Check the $location argument (checkout, registration or account) if a rule should only apply in one place. To act after a successful sign-up, for example to tag the user in your CRM, use the lifterlms_user_registered action, which receives the user ID, the submitted data and the location.

Common mistakes

  • Editing the Register form while Open Registration is off and wondering why nothing changed.
  • Changing a reusable field without detaching it, so the change appears on all three forms.
  • Removing address fields you need for tax, then having no country on orders.
  • Adding a username field by accident, which switches on usernames site-wide.
  • Making a custom field required on the account form, which forces existing students to fill it in before they can save any change to their account.

Frequently asked questions

Where is the LifterLMS registration form?

Under LifterLMS > Forms, titled Register. It appears on the Student Dashboard when Open Registration is enabled, and wherever you add the registration shortcode or block.

Can I remove the password field from checkout?

No. Email and password are required on the checkout and registration forms. You can remove the password confirmation field.

Can I use Gravity Forms or another form plugin instead?

Not as a drop-in replacement for checkout. Some sites register users through another form plugin and then enroll them with an integration or custom code, but you lose the built-in checkout and account handling.

Can each course have its own checkout form?

Not in core. The Custom Fields add-on can assign different checkout forms to courses, memberships or access plans.

Next steps

Trim the checkout form first; it affects revenue directly. Then decide whether you want open registration at all, and match the account form to whatever you collect at checkout. Test each form logged out, logged in and on a phone. For the rest of the purchase flow, see our LifterLMS checkout setup guide.

If you need conditional fields, data pushed to a CRM, company approval before access, or forms the editor cannot produce, our LifterLMS customization team can build it without touching core files. Describe the form you need.

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