LifterLMS Manual Payment Gateway: Bank Transfer and Invoices
Use the LifterLMS manual payment gateway for bank transfers, cheques and invoiced customers: how to set it up, what students see, how to approve an…
Read articleEvery 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.
Go to LifterLMS > Forms. You will find three forms, one per location:
| Form title | Location | Where it is used |
|---|---|---|
| Billing Information | Checkout | New user registration and updates to existing users' details during checkout and enrollment |
| Register | Registration | Open registration on the Student Dashboard, and anywhere the [lifterlms_registration] shortcode or registration block is used |
| Edit Account Information | Account | The 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.
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:
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.
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.
Selecting a field shows settings such as:
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.
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.
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.
A common surprise: editing the Register form changes nothing visible, because registration is not switched on.
[lifterlms_registration] shortcode or the registration block. This works regardless of Open Registration.If you only sell courses and never want free sign-ups, leave Open Registration off. Accounts are then created only at checkout.
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.
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.
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.
No. Email and password are required on the checkout and registration forms. You can remove the password confirmation field.
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.
Not in core. The Custom Fields add-on can assign different checkout forms to courses, memberships or access plans.
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.
Use the LifterLMS manual payment gateway for bank transfers, cheques and invoiced customers: how to set it up, what students see, how to approve an…
Read article
Set up LifterLMS checkout properly: the checkout page and confirmation flow, the billing form, terms and privacy, currency and spam protection, what…
Read article
What each screen of the LifterLMS setup wizard does, which options it actually saves, how to rerun or skip it, and the settings you still need to…
Read articleSkip the trial and error. Get specialist LifterLMS help and ship faster.