Title: LucrativeIT Driving School Management System
Author: lucrativeit
Published: <strong>October 9, 2026</strong>
Last modified: October 11, 2026

---

Search plugins

![](https://ps.w.org/lucrativeit-driving-school-management-system/assets/banner-
772x250.png?rev=3736320)

![](https://ps.w.org/lucrativeit-driving-school-management-system/assets/icon-256x256.
png?rev=3736320)

# LucrativeIT Driving School Management System

 By [lucrativeit](https://profiles.wordpress.org/lucrativeit/)

[Download](https://downloads.wordpress.org/plugin/lucrativeit-driving-school-management-system.1.1.0.zip)

 * [Details](https://wordpress.org/plugins/lucrativeit-driving-school-management-system/#description)
 * [Reviews](https://wordpress.org/plugins/lucrativeit-driving-school-management-system/#reviews)
 *  [Installation](https://wordpress.org/plugins/lucrativeit-driving-school-management-system/#installation)
 * [Development](https://wordpress.org/plugins/lucrativeit-driving-school-management-system/#developers)

 [Support](https://wordpress.org/support/plugin/lucrativeit-driving-school-management-system/)

## Description

**LucrativeIT Driving School Management System** is a complete driving school booking
system and management plugin for WordPress. Let students book driving lessons online,
match every booking to a free driving instructor, take payment, and run your whole
driving school from one modern dashboard.

It suits driving schools, driving instructors, motorcycle and truck training centres,
and any lesson-based business that needs appointment scheduling by instructor and
location.

Plugin website: [https://drivingschool.lucrativeit.com/](https://drivingschool.lucrativeit.com/)

Documentation: [https://docs.lucrativeit.com/driving-school/documentation.html](https://docs.lucrativeit.com/driving-school/documentation.html)

#### Why driving schools choose it

 * Students see only real, bookable times — no double bookings.
 * Instructors are assigned automatically based on the services they teach and their
   availability.
 * Take payment online with Stripe or WooCommerce, or accept direct (manual) payment.
 * Fast React admin built on the WordPress REST API.
 * Import demo data in one click to see the full booking flow straight away.

#### Driving lesson booking (front end)

 * **Ready-made pages** — **Book a Lesson** and **Booking Checkout** pages are created
   automatically on activation.
 * **Lesson catalogue** — responsive service cards with category, price, duration,
   description, a feature checklist (for example “Automatic car”, “Free pickup”),
   a **Book Now** button, and a “View Details” page for every lesson.
 * **Featured lessons** — mark services as featured and show them anywhere, such
   as your home page.
 * **Two booking flows** you can switch in Settings:
    - **Time slot picker** — the student picks a location and date and chooses from
      generated start times (for example 09:00, 10:10, 11:20…).
    - **Time search** — the student enters a location, date, and start time and 
      the plugin checks who is free.
 * **Instructor selection cards** — after picking a time, the student chooses from
   the instructors available for that slot. Each slot also shows when the lesson
   ends.
 * **Location-based booking** — offer each lesson at one or more training locations.
 * **Guest or logged-in booking** — logged-in students have their name and email
   filled in automatically.
 * **Customer accounts** — optional **Login**, **Registration**, and **My Account**
   pages. Students can create an account, log in, and see every lesson they have
   booked, with date and time, location, instructor, booking status, and payment
   status. You can also require login before booking.
 * **Dedicated checkout page** with a booking summary (lesson, location, date and
   time, instructor, price) and a choice of payment method.
 * **Customisable booking form** — add text, text area, email, phone, number, date,
   dropdown, radio, and checkbox fields; set the label, placeholder, help text, 
   options, and half or full width; mark fields required; and reorder them. Name
   and email are always collected. Phone, date of birth, and notes are included 
   by default.
 * Mobile-friendly, accessible markup with keyboard-friendly time slot and instructor
   pickers.

#### Shortcodes

 * `[ldsms_booking]` — show all active lessons with the booking flow.
 * `[ldsms_featured_services limit="3"]` — show lessons marked as featured. Use `
   limit` to cap how many are shown, or remove it to show all.
 * `[ldsms_services category="your-category-slug"]` — show lessons from a single
   category.
 * `[ldsms_service service="your-service-slug"]` — show one lesson with its details
   and Book Now button.
 * `[ldsms_service_detail]` — optional lesson details page; “View Details” links
   open this page for the chosen lesson.
 * `[ldsms_checkout]` — the checkout page students are sent to after choosing a 
   time.
 * `[ldsms_login]` — customer login form (requires customer login to be enabled 
   in Settings).
 * `[ldsms_register]` — customer registration form (requires customer login to be
   enabled in Settings).
 * `[ldsms_account]` — My Account page listing the logged-in student’s bookings;
   shows the login form to logged-out visitors.

Every category and service shows its exact shortcode with a **Copy** button, and**
Settings  Shortcodes** lists them all.

#### Driving school management (admin)

 * **Dashboard** — today’s bookings and revenue, pending bookings, active locations
   and services, all-time totals, this week and this month figures, a 6-month revenue
   chart, and upcoming and recent bookings, with links straight to the matching 
   lists.
 * **Service categories** — group lessons (for example Driving Lessons, Test Preparation,
   Motorcycle Training) with a description, status, sort order, and a copyable category
   shortcode.
 * **Services / lessons** — name, slug, description, feature list, duration, price,
   currency, category, featured flag, status, the locations where each lesson is
   offered, and a copyable shortcode.
 * **Instructors** — profile, email, phone, bio, status, and the services each instructor
   teaches.
 * **Locations** — address, city, state, postcode, phone, description, status, and
   sort order for every training centre or pickup point.
 * **Instructor availability** — date ranges with daily working hours, multiple 
   time ranges per day (split shifts), blocked ranges for breaks or time off, and
   overlap protection. Filter the list by instructor.
 * **Bookings** — list, search by code, name, or email, and filter by booking or
   payment status; create bookings for phone or walk-in students with live slot 
   checks; edit booking status (pending, confirmed, completed, cancelled), payment
   status (unpaid, paid, refunded, failed), and notes; and **reschedule** a booking
   to a new date, time, location, or instructor with a live availability check.
 * **Search** on every admin list.

#### Smart scheduling rules

 * Real-time availability that respects instructor hours and existing bookings.
 * A lesson is only offered when an instructor who teaches it is free for its full
   length.
 * **Buffer time** between two lessons for the same instructor.
 * **Minimum notice** — stop last-minute bookings (for example at least 2 hours 
   ahead).
 * **Break between slots** for the slot picker (for example 50-minute lessons with
   a 10-minute break start on the hour).
 * Times are calculated in your WordPress site time zone.

#### Payments

 * **Stripe Checkout** — secure card payments with webhook confirmation and automatic“
   paid” status.
 * **WooCommerce** — send bookings to WooCommerce checkout and use any WooCommerce
   payment gateway; order status, including refunds, syncs back to the booking.
 * **Direct payment** — accept bank transfer or cash with your own payment instructions,
   then mark the booking paid in the admin.
 * Offer Stripe and direct payment together and let students choose at checkout.
 * Card details are entered on Stripe’s hosted page and never stored on your site.
 * Multi-currency support with a site-wide default currency.

#### Email notifications

 * Instructors are emailed automatically when a lesson is booked with them or rescheduled
   to them (can be turned off).
 * Set the admin notification email address.
 * Editable subject and message templates with placeholders: `{booking_code}`, `{
   instructor_name}`, `{service_name}`, `{location_name}`, `{starts_at}`, `{ends_at}`,`{
   customer_name}`, `{customer_email}`, `{customer_phone}`, `{customer_dob}`, `{
   status}`, `{notes}`, and `{form_fields}` for answers to custom booking form fields.
 * Built-in **SMTP settings** (host, port, encryption, username, password, from 
   name and email) and a **test email** button.

#### Easy setup with demo data

 * On first activation you are asked whether to **import demo data**: sample categories,
   lessons, instructors, 6 months of availability, and about 30 sample bookings 
   so the revenue stats and monthly chart are filled in straight away.
 * Prefer to start fresh? Skip it — while your school has no data, the dashboard
   keeps offering a one-click demo import.
 * Already added your own services and instructors? The dashboard offers **Import
   sample bookings** until your first paid booking. Sample booking codes start with`
   DEMO`, so they are easy to delete later.

#### Built for developers

 * Modern WordPress React stack (`@wordpress/element`, `@wordpress/components`, `@
   wordpress/api-fetch`).
 * Custom REST API under `lucrativeit-driving-school-management-system/v1`, with
   capability checks and nonces.
 * Prepared SQL queries, sanitised input, and escaped output throughout.
 * Extensible with actions for every created, updated, and deleted record — for 
   example `ldsms_booking_created`, `ldsms_booking_updated`, `ldsms_booking_rescheduled`,`
   ldsms_customer_registered`, `ldsms_payment_completed`, `ldsms_service_created`,`
   ldsms_instructor_updated`, `ldsms_availability_deleted`, and `ldsms_settings_updated`—
   plus filters such as `ldsms_rest_controllers`, `ldsms_service_providers`, `ldsms_demo_data`,
   and the `ldsms_demo_data_imported` action.
 * Translation ready, with RTL stylesheets included.
 * Clean uninstall: deleting the plugin removes its tables and settings. Deactivating
   keeps all data.

### External services

This plugin can connect to one third-party service, **Stripe**, to take online card
payments. It is only used when a site administrator enables the Stripe payment method
in **Settings** and enters a Stripe secret key. If Stripe is not enabled, the plugin
makes no requests to Stripe or to any other external service.

#### Stripe (payment processing)

Stripe is an online payment platform. The plugin uses the Stripe Checkout API (`
https://api.stripe.com`) to create a secure, Stripe-hosted payment page for a booking
and then to confirm that the payment was completed.

What data is sent and when:

 * **When a student chooses to pay with Stripe at checkout**, the plugin creates
   a Stripe Checkout Session. It sends the customer’s email address, the booking
   ID and booking code, the lesson (service) name, the amount and currency, and 
   the success and cancel return URLs of your site. Your Stripe secret key is sent
   in the request header to authenticate with Stripe.
 * **When the student returns from Stripe to your site after paying**, the plugin
   sends the Checkout Session ID to Stripe, together with your secret key, to check
   the payment status and confirm that the amount and booking details match.
 * On the Stripe-hosted payment page, the student enters their card details directly
   with Stripe. Card details never pass through or get stored on your WordPress 
   site.
 * If you configure a Stripe webhook, Stripe sends payment event notifications to
   your site’s REST API endpoint. The plugin checks each notification with your 
   webhook signing secret. No extra data is sent from your site to Stripe for this.

This service is provided by Stripe, Inc.:

 * Stripe Services Agreement (terms of service for merchants): [https://stripe.com/legal/ssa](https://stripe.com/legal/ssa)
 * Stripe Consumer Terms of Service: [https://stripe.com/legal/consumer](https://stripe.com/legal/consumer)
 * Stripe Privacy Policy: [https://stripe.com/privacy](https://stripe.com/privacy)

#### Other connections you configure

 * **SMTP email (optional):** if you fill in the SMTP settings, booking notification
   emails go through the SMTP server you choose. That server receives the email 
   content, including the instructor’s email address and booking details such as
   customer name, service, location, and start time. The plugin does not provide
   this server. Your email provider’s terms and privacy policy apply.
 * **WooCommerce (optional):** if you choose WooCommerce as the payment method, 
   payment happens through the WooCommerce gateway you have set up. This plugin 
   does not contact that gateway directly. The gateway’s own terms and privacy policy
   apply.

## Screenshots

[⌊Lesson catalogue on the front end, with price, duration, features, Book Now, and
View Details for every lesson.⌉⌊Lesson catalogue on the front end, with price, duration,
features, Book Now, and View Details for every lesson.⌉[

Lesson catalogue on the front end, with price, duration, features, Book Now, and
View Details for every lesson.

[⌊Check availability: the student picks a location and date, chooses a generated
time slot, and selects an available instructor.⌉⌊Check availability: the student
picks a location and date, chooses a generated time slot, and selects an available
instructor.⌉[

Check availability: the student picks a location and date, chooses a generated time
slot, and selects an available instructor.

[⌊Booking checkout with a lesson summary, Stripe or direct payment choice, and the
customisable booking form.⌉⌊Booking checkout with a lesson summary, Stripe or direct
payment choice, and the customisable booking form.⌉[

Booking checkout with a lesson summary, Stripe or direct payment choice, and the
customisable booking form.

[⌊Admin dashboard with today's bookings and revenue, pending bookings, all-time 
totals, a 6-month revenue chart, and quick stats.⌉⌊Admin dashboard with today's 
bookings and revenue, pending bookings, all-time totals, a 6-month revenue chart,
and quick stats.⌉[

Admin dashboard with today’s bookings and revenue, pending bookings, all-time totals,
a 6-month revenue chart, and quick stats.

[⌊Bookings list with student, service, date and time, instructor, location, booking
status, and payment status.⌉⌊Bookings list with student, service, date and time,
instructor, location, booking status, and payment status.⌉[

Bookings list with student, service, date and time, instructor, location, booking
status, and payment status.

[⌊Add a booking for a phone or walk-in student: services appear only when an instructor
who teaches them is free.⌉⌊Add a booking for a phone or walk-in student: services
appear only when an instructor who teaches them is free.⌉[

Add a booking for a phone or walk-in student: services appear only when an instructor
who teaches them is free.

[⌊Services with category, locations, duration, price, featured badge, and a copyable
shortcode.⌉⌊Services with category, locations, duration, price, featured badge, 
and a copyable shortcode.⌉[

Services with category, locations, duration, price, featured badge, and a copyable
shortcode.

[⌊Service categories with a copyable shortcode to show one category's lessons on
any page.⌉⌊Service categories with a copyable shortcode to show one category's lessons
on any page.⌉[

Service categories with a copyable shortcode to show one category’s lessons on any
page.

[⌊Instructors with contact details and the services each instructor teaches.⌉⌊Instructors
with contact details and the services each instructor teaches.⌉[

Instructors with contact details and the services each instructor teaches.

[⌊Training locations with address, phone, and status.⌉⌊Training locations with address,
phone, and status.⌉[

Training locations with address, phone, and status.

[⌊Instructor availability by date range and daily hours, including split shifts.⌉⌊
Instructor availability by date range and daily hours, including split shifts.⌉[

Instructor availability by date range and daily hours, including split shifts.

[⌊Add availability: choose the instructor, date range, and hours, or block a range
for time off.⌉⌊Add availability: choose the instructor, date range, and hours, or
block a range for time off.⌉[

Add availability: choose the instructor, date range, and hours, or block a range
for time off.

[⌊General settings: currency, booking buffer, minimum notice, customer login, guest
booking, and the booking flow.⌉⌊General settings: currency, booking buffer, minimum
notice, customer login, guest booking, and the booking flow.⌉[

General settings: currency, booking buffer, minimum notice, customer login, guest
booking, and the booking flow.

[⌊Booking form builder: add, reorder, and configure the fields shown at checkout.⌉⌊
Booking form builder: add, reorder, and configure the fields shown at checkout.⌉[

Booking form builder: add, reorder, and configure the fields shown at checkout.

[⌊Payment settings: WooCommerce, direct (manual) payment, and Stripe Checkout.⌉⌊
Payment settings: WooCommerce, direct (manual) payment, and Stripe Checkout.⌉[

Payment settings: WooCommerce, direct (manual) payment, and Stripe Checkout.

[⌊Email settings: admin notification address and the editable instructor email template.⌉⌊
Email settings: admin notification address and the editable instructor email template
.⌉[

Email settings: admin notification address and the editable instructor email template.

[⌊SMTP settings with a test email button.⌉⌊SMTP settings with a test email button
.⌉[

SMTP settings with a test email button.

[⌊Shortcodes tab with copy buttons for every booking screen.⌉⌊Shortcodes tab with
copy buttons for every booking screen.⌉[

Shortcodes tab with copy buttons for every booking screen.

[⌊My Account page: the logged-in student's bookings with date and time, location,
instructor, booking status, and payment status.⌉⌊My Account page: the logged-in 
student's bookings with date and time, location, instructor, booking status, and
payment status.⌉[

My Account page: the logged-in student’s bookings with date and time, location, 
instructor, booking status, and payment status.

## Installation

 1. Upload the `lucrativeit-driving-school-management-system` folder to `/wp-content/
    plugins/`, or install it from **Plugins  Add New**.
 2. Activate the plugin from the **Plugins** screen.
 3. You are taken to **Driving School  Dashboard**. Choose **Import demo data** to 
    explore with sample content, or **Start without demo data**.
 4. Add your locations, service categories, services, instructors, and instructor availability.
 5. Create a page with `[ldsms_booking]` (or `[ldsms_services category="slug"]`) for
    your lesson list, and a page with `[ldsms_checkout]` for checkout.
 6. Open **Settings** to choose the booking flow, payment methods, currency, scheduling
    rules, booking form fields, and email settings.

Compiled assets ship in the `build/` folder, so you do **not** need Node.js or npm.

For a full setup and user guide with screenshots, see the [documentation](https://docs.lucrativeit.com/driving-school/documentation.html).

## FAQ

### Is this plugin only for driving schools?

It is designed for driving schools and driving instructors, but it works for any
lesson or appointment business that books customers with staff at a location — for
example motorcycle training, swimming lessons, or tutoring.

### Can students book without creating an account?

Yes. Guest booking is supported. Logged-in users get their name and email filled
in automatically.

### Can students log in and see their bookings?

Yes. Turn on **Enable customer login and registration** in **Settings  General**
and save. The plugin creates **Customer Login**, **Customer Registration**, and **
My Account** pages. Bookings placed while logged in appear on the student’s My Account
page. To require an account for every booking, also turn off **Allow guest booking**.

### Can I reschedule a booking?

Yes. In **Bookings**, click **Reschedule** on a pending or confirmed booking, pick
the new date, time, location, and instructor, and save. Only free slots are accepted,
and the instructor is emailed.

### How are instructors assigned to a booking?

Only instructors who teach the chosen service, are available at that time, and have
no conflicting booking are offered. The student picks one from the available instructor
cards.

### Which payment methods are supported?

Stripe Checkout, WooCommerce (with any WooCommerce gateway), and direct/manual payment
with your own instructions.

### Can I prevent back-to-back or last-minute bookings?

Yes. Use **Buffer time** to add a gap between lessons for the same instructor, and**
Minimum notice** to block bookings too close to the start time.

### Can I import demo data later?

Yes. While there are no categories, services, instructors, or availability, the 
dashboard shows an **Import demo data** option. To protect your real data, the import
is blocked once you have added your own records.

### Can I customise the booking form?

Yes. In **Settings**, add, reorder, and configure extra fields (text, text area,
email, phone, number, date, dropdown, radio, checkbox).

### Does it send email notifications?

Yes. Instructors are emailed for every new booking. You can edit the template and
configure SMTP for reliable delivery.

### Do I need to build anything with npm?

No. Production-ready assets are included in the `build/` folder.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“LucrativeIT Driving School Management System” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ lucrativeit ](https://profiles.wordpress.org/lucrativeit/)

[Translate “LucrativeIT Driving School Management System” into your language.](https://translate.wordpress.org/projects/wp-plugins/lucrativeit-driving-school-management-system)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/lucrativeit-driving-school-management-system/),
check out the [SVN repository](https://plugins.svn.wordpress.org/lucrativeit-driving-school-management-system/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/lucrativeit-driving-school-management-system/)
by [RSS](https://plugins.trac.wordpress.org/log/lucrativeit-driving-school-management-system/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.0

 * New: Customer accounts. Optional Login (`[ldsms_login]`), Registration (`[ldsms_register]`),
   and My Account (`[ldsms_account]`) pages, created automatically when enabled.
 * New: My Account lists the logged-in student’s bookings with date and time, location,
   instructor, booking status, payment status, and price.
 * New: “Enable customer login and registration” setting. With it on, turning off“
   Allow guest booking” requires students to log in before booking.
 * New: Checkout offers Log in and Create account buttons to logged-out students,
   and links logged-in students to My Account after booking.
 * New: Reschedule bookings from the admin Bookings list, with a live availability
   check and instructor email notification.
 * New: `ldsms_booking_rescheduled` and `ldsms_customer_registered` actions.

#### 1.0.0

 * Online driving lesson booking with time slot picker and time search flows.
 * Instructor selection cards for the chosen time slot.
 * Service categories, services, instructors, locations, and instructor availability
   management.
 * Bookings management with admin booking creation and live slot checks.
 * Stripe Checkout, WooCommerce, and direct payment support.
 * Instructor email notifications with SMTP settings and test email.
 * Custom booking form builder.
 * Buffer time, minimum notice, and slot break scheduling rules.
 * Admin dashboard with revenue and booking statistics.
 * First-run demo data import with sample bookings, also available from the dashboard.

## Meta

 *  Version **1.1.0**
 *  Last updated **18 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [appointment booking](https://wordpress.org/plugins/tags/appointment-booking/)
   [booking system](https://wordpress.org/plugins/tags/booking-system/)[driving school](https://wordpress.org/plugins/tags/driving-school/)
 *  [Advanced View](https://wordpress.org/plugins/lucrativeit-driving-school-management-system/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/lucrativeit-driving-school-management-system/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/lucrativeit-driving-school-management-system/reviews/)

## Contributors

 *   [ lucrativeit ](https://profiles.wordpress.org/lucrativeit/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/lucrativeit-driving-school-management-system/)