Installment Payments Documentation

Documentation โ€” Installment Payments for Tutor LMS
Installment Payments for Tutor LMS โ€” Documentation
Plugin Documentation

Installment Payments
for Tutor LMS

Everything you need to set up, configure, and manage flexible payment plans for your Tutor LMS courses. Covers installation, configuration, student experience, and common troubleshooting.

๐Ÿ“ฆ Version 4.1.54 ๐Ÿ”Œ Requires: WooCommerce + Tutor LMS โœ… HPOS Compatible

Ready to get started?

One-time payment of $149 ยท Lifetime updates ยท Secure checkout via WooCommerce

Purchase the Plugin โ€” $149 โ†’
Section 1

Overview

Installment Payments for Tutor LMS enables course creators to offer flexible, multi-payment plans for any Tutor LMS course or bundle. Instead of requiring a single upfront payment, students can pay in 2 to 12 installments while gaining immediate access to course content after the first payment.

The plugin integrates tightly with WooCommerce for payment processing and provides a complete lifecycle management system โ€” from checkout through reminders, access control, and final completion.

What it does

  • Lets admins configure 2โ€“12 installment payments per course or bundle
  • Grants students immediate course access after the first payment
  • Automatically sends payment reminders on or before the due date
  • Suspends course access after a configurable grace period of non-payment
  • Restores access as soon as the overdue installment is paid
  • Grants lifetime access when the final installment is received
  • Supports full course bundles โ€” all courses enrolled or suspended together
  • Integrates with WooCommerce Memberships for Tutor LMS to pause billing during active memberships
  • Provides admin plan management including cancellation with “retain access” or “revoke access” options

Key benefits

  • Reduces cart abandonment by lowering the upfront cost barrier
  • Increases course sales by reaching budget-conscious students
  • Fully automated โ€” reminders, suspensions, and completions run via daily cron job
  • Professional student experience with dashboard integration in WooCommerce My Account and Tutor LMS Dashboard
  • Compatible with WooCommerce HPOS (High-Performance Order Storage)
Section 2

Requirements

Minimum requirements

ComponentMinimum version
WordPress5.8 or higher
PHP7.4 or higher
WooCommerce5.0 or higher (tested up to 8.0)
Tutor LMS2.0 or higher (Free or Pro)

Recommended environment

ComponentRecommendation
WordPressLatest version
PHP8.0 or higher
WooCommerceLatest version
Tutor LMS ProFor advanced course features and bundle support
SMTP Plugine.g., WP Mail SMTP โ€” for reliable HTML email delivery
SSL CertificateRequired for secure payment processing

Required plugins

Optional but recommended

  • WooCommerce Memberships for Tutor LMS (Ksajie) โ€” enables membership pause/resume integration
  • SMTP Plugin โ€” ensures reliable HTML email delivery for all installment notifications
Section 3

Installation

Method 1: WordPress admin upload (recommended)

  1. Log in to your WordPress admin dashboard
  2. Navigate to Plugins โ†’ Add New
  3. Click Upload Plugin
  4. Select the tutor-installments.zip file
  5. Click Install Now
  6. Click Activate Plugin

Method 2: Manual FTP installation

  1. Unzip the tutor-installments.zip file
  2. Upload the tutor-installments folder to /wp-content/plugins/
  3. Log in to WordPress admin
  4. Navigate to Plugins โ†’ Installed Plugins
  5. Find “Tutor LMS Installment Payments” and click Activate

Post-installation steps

  1. Ensure WooCommerce and Tutor LMS are active
  2. Enter your license key when prompted after activation
  3. Open a WooCommerce product linked to a Tutor LMS course โ€” enable installments in the General tab
  4. Optionally visit WooCommerce โ†’ Installment Plans โ†’ Settings to configure reminder and suspension days
  5. Visit /my-account/installments/ to verify the endpoint is accessible
  6. Flush permalinks: Settings โ†’ Permalinks โ†’ Save Changes (required after first install)
Section 4

Configuration

Per-product settings (WooCommerce product editor)

Open any WooCommerce product linked to a Tutor LMS course or bundle. In the Product Data โ†’ General tab, the Tutor Installments section provides:

SettingDescription
Enable InstallmentsMaster on/off switch. Only available for products linked to a course or course bundle.
Number of InstallmentsSelect 2โ€“12. Controls how many payments the total price is divided into.
First Installment AmountOptional. Leave blank for equal payments. Enter a custom amount for the first payment; the remainder is split equally across the remaining installments.
Show Installments BadgeWhen enabled, displays an “Installments Available” badge on course thumbnails in archives and the single course page.
โ„น๏ธ

Settings are dual-saved: when saved via the product editor, the values are mirrored to the linked course/bundle post meta. This ensures the floating panel in the course builder always shows current settings.

Global settings (WooCommerce โ†’ Installment Plans โ†’ Settings)

SettingDescription
Payment Reminder DaysNumber of days before the due date to send a reminder email. Default: 0 (reminder sent on the due date itself).
Suspension Grace Period DaysNumber of days after the due date before course access is suspended. Default: 5 days.

Floating panel (course / bundle builder)

When editing a course or course bundle in the Tutor LMS builder, a floating panel is available for configuring installment settings without leaving the builder. It reads settings from the course/bundle post meta and syncs back to the linked WooCommerce product automatically.

Section 5

Checkout Flow

Standard checkout

  1. Student visits a course or WooCommerce product page
  2. A “Payment Options” section displays “Pay in Full” and “Pay in Installments” radio buttons
  3. Selecting “Pay in Installments” shows the first payment amount, full schedule, and an access note
  4. Student adds to cart โ€” the installment choice is stored as cart item data
  5. At checkout, the cart price is modified to reflect only the first installment amount
  6. Student completes checkout โ€” a WooCommerce order is created for the first installment
  7. On payment confirmation, the installment plan is created and course access is immediately granted
  8. Subsequent installment records are created with 30-day intervals from the purchase date
โš ๏ธ

The installment plan is created only when payment is confirmed, not when the order is placed. This prevents plans from being created for failed or pending payments.

Payment calculation

When no custom first installment is set, the total price is divided equally across all installments. When a custom first installment amount is specified, the remainder is divided equally across the remaining payments.

All subsequent installments fall exactly 30 days apart from the purchase date. The first installment is due immediately and marked as paid at checkout.

Direct-to-cart URLs

You can create marketing links that automatically add a course to the cart with installments pre-selected. Supported URL parameters:

ParameterDescription
?add-course-installment=IDRequired. Course or bundle ID to add with installments
&redirect=checkoutOptional. Redirect to checkout after adding (default: cart)
&redirect=noOptional. Stay on current page after adding
&installments=6Optional. Override the configured installment count
&clear_cart=yesOptional. Empty the cart before adding

A shortcode [installment_cart_url] is also available for generating these URLs dynamically within page content.

Section 6

Course Access Control

The plugin manages four distinct access states for each student’s course enrollment:

StatusWhat it means
ActiveStudent is enrolled and has full access to all course content
SuspendedPayment overdue beyond grace period. Lessons and quizzes are blocked; a payment prompt is shown instead
CompletedAll installments paid. Lifetime access granted permanently
Cancelled โ€” Retain AccessAdmin cancelled the plan and chose to keep the student enrolled. Full permanent access
Cancelled โ€” Revoke AccessAdmin cancelled and removed enrollment. Progress is preserved for future re-enrollment

What is blocked for suspended users

  • Lesson single pages โ€” replaced with a payment required message
  • Quiz single pages โ€” replaced with a payment required message
  • Course completion button โ€” payment message shown instead
  • Certificate download and certificate URL โ€” redirected or blocked
  • The “Add to Cart” / enroll section is hidden (prevents double-purchasing)

What is NOT blocked for suspended users

  • The course page itself โ€” students can still see the course description and syllabus
  • Their progress data โ€” all progress is preserved throughout suspension
  • Admin users โ€” always have unrestricted access regardless of plan status
Section 7

Payment Lifecycle Automation

All automated actions are driven by a daily background job. No manual intervention is required once a plan is created.

How automation works

A daily cron event runs two tasks in sequence: first it sends payment reminders for installments due within the configured reminder window, then it suspends access for installments that are overdue beyond the configured grace period.

  • Reminders โ€” sent for installments due within the configured number of days. A flag on the installment record prevents duplicate emails. If a student pays before the reminder fires, no reminder is sent.
  • Suspension โ€” fires for installments overdue by more than the grace period. Multiple checks prevent duplicate suspensions.
  • Restoration โ€” when a student pays an overdue installment, access is restored immediately upon order completion.
  • Completion โ€” when the final installment is paid, the plan status is set to “completed” and a lifetime access flag is set permanently.
โ„น๏ธ

Plans that are paused by an active membership are skipped entirely by the daily cron. Reminders and suspensions do not fire during a membership pause.

Section 8

Admin Management

Navigate to WooCommerce โ†’ Installment Plans to access the admin interface.

Plans tab

Lists all installment plans across all students. You can filter by status (All, Active, Suspended, Completed, Cancelled) and by pause state (All, Paused by membership, Not Paused).

Each row shows the student name, course name, total amount, paid/total installment count, plan status, and cancellation status if applicable. Actions include viewing the plan detail page and cancelling a plan.

Plan detail page

Shows the full payment history for a single plan, including course and product information, a payment progress bar, a table of all installments with amounts/dates/statuses, membership pause information, and cancellation details. For non-cancelled plans, a Cancel Plan button is available.

Cancelling a plan

Clicking “Cancel Plan” opens a confirmation dialog with two options:

OptionWhat happens
Retain AccessGrants full access as if fully paid. Student keeps their enrollment and can complete the course. No further billing. The student is notified by email.
Revoke AccessRemoves the student’s course enrollment. Progress data is preserved for future re-enrollment. The student is notified by email.

An optional reason field lets you record the reason for cancellation internally.

WooCommerce orders column

An “Installments” column is added to the WooCommerce Orders list. For orders with an associated installment plan, the column shows the plan ID as a clickable link to the plan detail page. Both HPOS and legacy order storage are supported.

Section 9

Student Dashboard

Students can view and manage their installment plans from two locations: a dedicated page in WooCommerce My Account (/my-account/installments/) and a dedicated tab in the Tutor LMS Dashboard.

What students see

  • Each plan shows the course name, current status, a payment progress bar, and the full payment schedule
  • A Pay Now button is available for each upcoming installment
  • Cancelled plans display the access status (Retained or Revoked)
  • Plans paused by an active membership display a “Paused” badge
Section 10

Course Bundle Support

Course bundles are fully supported. A single installment plan is created for the entire bundle, and all courses inside the bundle are enrolled, suspended, or completed together as one unit.

How bundle enrollment works

When a student’s first installment is paid for a bundle, the plugin enrolls the student in every course within the bundle simultaneously. All subsequent access changes (suspension, restoration, completion) apply to every course in the bundle at the same time.

โš ๏ธ

If a course is added to a bundle after a student has already purchased the bundle, the student is not automatically enrolled in the new course. The plugin only enrolls the courses present in the bundle at the time of purchase.

Section 11

Membership Integration

When the WooCommerce Memberships for Tutor LMS plugin is active, the Installments plugin automatically integrates with it to prevent double-charging students who have both a membership and an installment plan covering the same course.

This integration is only active when the memberships plugin is installed and activated. If it’s deactivated, all pause logic is safely bypassed.

How pause and resume works

  • When a student activates a membership that covers a course they have on installments, the installment plan is automatically paused
  • If the student’s access was previously suspended (overdue), it is restored immediately during the membership period
  • While paused, the daily cron skips reminders and suspensions for the plan entirely
  • When the membership expires, the plan is automatically unpaused and billing resumes โ€” due dates are adjusted to account for the paused days
  • A “resume notice” email is sent to the student when billing resumes
  • Cancelled plans are fully excluded from pause/resume logic and will never be paused by a new membership

Certificates during membership

If a student completes a course and earns a certificate while their installment plan is paused by a membership, the plugin records this. When the membership expires and installments remain unpaid, the certificate is hidden until the plan is fully paid. Once all installments are complete, the certificate becomes accessible again.

Section 12

Email Notifications

All emails are sent as HTML to the student automatically. No manual intervention is needed.

TriggerSubject line
Payment due (reminder)Payment Reminder: Installment Due for [Course Name]
Access suspended (overdue)Course Access Suspended: [Course Name]
Payment receivedPayment Received: [Course Name]
All installments completeCongratulations! Course Fully Paid: [Course Name]
Plan cancelled by admin[Site Name] Your Installment Plan Has Been Cancelled
Membership expires, billing resumesYour Installment Payments Have Resumed: [Course Name]
โ„น๏ธ

All email subjects include your site name in brackets, e.g., “[My School] Your Installment Plan Has Been Cancelled”. We recommend using a transactional SMTP plugin for reliable HTML email delivery.

Section 13

Shortcodes

Three shortcodes are available for embedding installment views on any page, in addition to the automatic My Account and Tutor Dashboard integrations.

[tutor_installments]
Renders the full installment plans view for the logged-in user. Shows all plans with payment schedule, progress bar, and Pay Now buttons.
user_id User ID to display plans for. Default: current logged-in user.
status Filter by plan status: all, active, suspended, completed. Default: all.
[tutor_installments_summary]
Renders a compact summary view of installment plans.
user_id User ID to display. Default: current user.
show_details_link “yes” or “no”. Show a link to the full details page. Default: yes.
[tutor_installments_single]
Renders the detailed view for a single installment plan.
plan_id The specific plan ID to display. Required.
[installment_cart_url]
Generates a direct-to-cart URL with installments pre-selected. Useful for embedding purchase links in page content.

URL resolution priority

When the plugin generates a link to the installments page (for example, in email notifications), it uses this priority order to determine the correct URL:

  1. Tutor LMS Dashboard installments tab (/dashboard/installments/) if the dashboard page is published
  2. Any published page containing the [tutor_installments] shortcode
  3. WooCommerce My Account endpoint (/my-account/installments/) as the final fallback
Section 14

Frequently Asked Questions

Yes. Course access is granted immediately after the first installment is paid. The student does not need to wait for subsequent payments to start the course.
Nothing happens immediately. The plugin waits for the configured grace period (default: 5 days) before suspending access. The student receives a reminder email on or before the due date. After the grace period, course access is suspended until the overdue installment is paid. Once paid, access is restored instantly.
Not automatically. Each installment creates a separate WooCommerce order. Students can pay the next due installment at any time from their account page, but there is no single “pay all remaining” button at this time.
Yes. When a student purchases a course bundle with installments, a single plan is created for the entire bundle. All courses within the bundle are enrolled, suspended, or completed together as one unit.
Yes. Admins can cancel any plan from WooCommerce โ†’ Installment Plans with two options: Retain Access (student keeps the course permanently) or Revoke Access (enrollment is removed but progress is saved). The student is automatically notified by email on cancellation.
Yes. The plugin explicitly declares HPOS (High-Performance Order Storage) compatibility and handles both HPOS and legacy order storage simultaneously.
Yes. Use the [tutor_installments], [tutor_installments_summary], or [tutor_installments_single] shortcodes on any page. The plugin automatically detects which page has the shortcode and uses it as the link target in emails and notifications.
It works with both Tutor LMS Free and Pro. However, you do need WooCommerce as the payment processing engine since the plugin creates installment orders through WooCommerce.
Any payment gateway that works with WooCommerce works with this plugin โ€” Stripe, PayPal, bank transfers, and so on. The plugin creates standard WooCommerce orders for each installment payment, so gateway compatibility is determined by WooCommerce, not by this plugin.
By default, all payment data (tables, plans, installments) is preserved on uninstall. This ensures student purchase history is not lost if the plugin is temporarily deactivated or reinstalled. Only license-related options are deleted on uninstall.
Section 15

Troubleshooting

Before reporting an issue, enable WordPress debug logging (WP_DEBUG_LOG in wp-config.php). All plugin log entries are prefixed with Tutor Installments: for easy filtering.

! Installment plan not created after checkout

The plan is created on payment confirmation โ€” not when the order is placed. Verify the following:

  • Your payment gateway marks the order as “completed” or triggers the payment_complete hook
  • The product has installments enabled (check WooCommerce โ†’ Products โ†’ Product โ†’ General tab)
  • Check your error log for lines starting with “Tutor Installments:” to trace the plan creation attempt
! Course not accessible after first payment

After plan creation, course access is granted automatically. If access isn’t working:

  • Verify that a plan was created (navigate to WooCommerce โ†’ Installment Plans and look for the new plan)
  • Check that the student’s enrollment exists in WordPress as a completed enrollment post
  • Try flushing permalinks: Settings โ†’ Permalinks โ†’ Save Changes
! Subsequent installment payment fails

Subsequent payments go through the WooCommerce order-pay page. Verify:

  • The order for the installment was created with the correct internal metadata (check via the WooCommerce order editor)
  • Billing address fields are present โ€” some gateways require them on the order-pay page; the plugin injects them automatically but check if your gateway has additional requirements
  • The order status transitions to “completed” or fires the payment_complete hook on your gateway
! Suspended users can still see lesson content

Suspension requires Tutor LMS theme/template hooks to fire correctly. Verify:

  • The student is not an admin โ€” admins are never filtered regardless of plan status
  • Your theme is not overriding or bypassing Tutor LMS template hooks
  • The user’s access state meta key is set to “suspended” (check with a user meta debug plugin if needed)
! Installments tab not showing in Tutor Dashboard

The dashboard tab requires a template file in your theme. The plugin attempts to create this automatically. If it does not appear:

  • Check for an admin notice on the Plugins page โ€” instructions for manual file creation are shown if auto-creation fails
  • Flush permalinks: Settings โ†’ Permalinks โ†’ Save Changes
! Database tables missing

The plugin includes self-healing: if tables are missing when a plan is being created, it attempts to recreate them automatically. For manual recreation, deactivate and reactivate the plugin.

Section 16

Support

๐Ÿ’ฌ

Need help? Visit the support portal

If you’re experiencing an issue not covered in this documentation or the troubleshooting section, you can submit a support request through the portal. Please include the details below in your message to help us resolve your issue quickly.

Open Support Portal โ†’
Your WordPress version
Your PHP version
Your WooCommerce version
Your Tutor LMS version
Relevant lines from your WordPress debug log (enable with WP_DEBUG_LOG in wp-config.php)
A clear description of the steps to reproduce the issue