LucrativeIT Driving School Management System is a complete driving school booking and management plugin for WordPress. Let students book driving lessons online, match every booking to a free instructor, take payment, and run your whole 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/
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)
- Lesson catalogue — responsive service cards with price, duration, description, and a “View Details” page for every lesson.
- 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.
- 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.
- Dedicated checkout page with a booking summary (lesson, location, date and time, instructor, price).
- Customisable booking form — add text, text area, email, phone, number, date, dropdown, radio, and checkbox fields, mark them required, add help text, and set half or full width. Name and email are always collected.
- Mobile-friendly, accessible markup with keyboard-friendly time slot and instructor pickers.
Shortcodes
[ldsms_booking] — show all active lessons with the booking flow.
[ldsms_services category="your-category-slug"] — show lessons from a single category.
[ldsms_checkout] — the checkout page students are sent to after choosing a time.
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.
- Service categories — group lessons (for example Driving Lessons, Test Preparation, Motorcycle Training).
- Services / lessons — name, description, duration, price, currency, category, status, and the locations where each lesson is offered.
- Instructors — profile, email, phone, bio, status, and the services each instructor teaches.
- Locations — address, city, state, postcode, phone, and description for every training centre.
- Instructor availability — date ranges with daily working hours, multiple time ranges per day, and overlap protection.
- Bookings — list, search, and filter by booking or payment status; create bookings for phone or walk-in students with live slot checks; edit status and payment status.
Smart scheduling rules
- Real-time availability that respects instructor hours and existing bookings.
- 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.
- Multi-currency support with a site-wide default currency.
Email notifications
- Instructors are emailed automatically when a lesson is booked with them.
- Editable subject and message templates with placeholders such as
{instructor_name}, {booking_code}, {service_name}, {location_name}, {starts_at}, {customer_name}, and more.
- 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, and 6 months of availability.
- Prefer to start fresh? Skip it — while your school has no data, the dashboard keeps offering a one-click demo import.
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 and filters, such as
ldsms_booking_updated, ldsms_service_created, ldsms_rest_controllers, ldsms_demo_data, and ldsms_demo_data_imported.
- Translation ready.
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.:
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.