Skip to main content

Checkout

Checkout

Renders LifterLMS's checkout form — plan summary, login prompt or account fields, coupon field, payment gateway options and the Buy Now / Enroll Now button — for the access plan passed in the page URL. The widget outputs the [lifterlms_checkout] shortcode with a single column setting; everything else on the screen (fields, gateways, notices, the confirm-payment step) is LifterLMS's own.

Checkout widget rendering the LifterLMS checkout form for an access plan

Usage

Elementor-built checkout page — Edit the page set as Checkout Page under LifterLMS > Settings > Pages (or create a new page and select it there) with Elementor, and place this widget where the form should appear. Access plan buttons across the site — including the Access Plan Button, Pricing Table and Course Access Plans widgets — link to that page with the plan appended as ?plan=<ID>, which is what the widget needs to render.

Two-column layout — Set Number of columns on the checkout screen to 2 to place the account/billing fields beside the order summary and payment section instead of stacking them. LifterLMS ignores the setting and uses one column when the plan is free or the checkout form has no fields.

Shortcode instead of a widget — In a Text Editor widget or outside Elementor, use [lifterlms_checkout cols="2"] directly (see LifterLMS shortcodes); it renders the same form.

How it works

The widget passes only the column count; LifterLMS decides what appears from the URL, the visitor's login and enrollment state, and the plan's settings.

SituationBehaviour
URL has ?plan=<ID> of a published access planThe checkout form renders. Logged-out visitors see an Already have an account? Click here to login link plus the registration/billing fields; logged-in visitors see a You are currently logged in as … notice and only the fields still required. A coupon stored in the session for this plan is applied automatically.
URL has ?plan= that is missing, unpublished or not an access planAn Invalid access plan. error renders in place of the form.
No plan parameter (for example when previewing the page or opening it directly)Your cart is currently empty. Click here to get started. renders, linking to the LifterLMS course catalog.
URL is the confirm-payment step (/confirm-payment/?order=<key>)The confirm-payment form renders for that order; a missing order shows Could not locate an order to confirm.
Plan is restricted to memberships the visitor does not holdYou must be a member in order to purchase this access plan. renders instead of the form.
Visitor is already enrolled in the plan's course or membershipYou already have access to this course/membership! with a dashboard link renders and the form is blocked.
Course has reached its enrollment capacityThe course's Capacity Message renders and the form is blocked.
Plan is free, or the form has no fieldsThe form renders in one column regardless of the widget setting.
Editor previewThe widget has no live editor template; the form is rendered by LifterLMS on the front end, and the editor's URL carries no plan parameter.

Settings

Content

SettingDescription
Number of columns on the checkout screenNumber field passed to the shortcode's cols attribute. Default 1. LifterLMS accepts 1 (fields, summary and payment stacked) or 2 (fields beside the summary and payment section).

Style

The widget has no Style tab of its own. The form uses LifterLMS's markup and classes (llms-checkout-wrapper, llms-checkout, llms-form-fields, llms-checkout-section), so style it with LifterLMS's stylesheet, your theme, or the Custom CSS section on the Advanced tab.

Advanced

The Advanced tab holds Elementor's own layout, motion, responsive and custom-CSS controls — see Elementor's documentation. Lifter Elements adds one section, Conditional Logic, which shows or hides this widget by the visitor's LifterLMS status — see the Conditional Logic reference.

Notes

  • The widget does not choose a plan. It only works on a page reached with ?plan=<ID>, which LifterLMS and the Lifter Elements plan widgets add when linking to the Checkout Page set in LifterLMS > Settings > Pages. Keep the widget on that page so the confirm-payment step and gateway redirects land on it too.
  • Checkout output is per-visitor (login state, enrollment, pending orders, coupons), so avoid caching the page it sits on.
  • Related: Access Plan Button, Pricing Table, Course Access Plans.