{"id":380181,"date":"2026-10-09T09:34:48","date_gmt":"2026-10-09T09:34:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/lucrativeit-driving-school-management-system\/"},"modified":"2026-10-11T08:06:52","modified_gmt":"2026-10-11T08:06:52","slug":"lucrativeit-driving-school-management-system","status":"publish","type":"plugin","link":"https:\/\/cs.wordpress.org\/plugins\/lucrativeit-driving-school-management-system\/","author":23521242,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.3","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"LucrativeIT Driving School Management System","header_author":"LucrativeIT","header_description":"Modern React + REST appointment booking and driving school management for WordPress.","assets_banners_color":"a4b6ce","last_updated":"2026-10-11 08:06:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/drivingschool.lucrativeit.com\/","header_author_uri":"https:\/\/lucrativeit.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":105,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"lucrativeit","date":"2026-10-09 09:34:26","revision":3736307},"1.1.0":{"tag":"1.1.0","author":"lucrativeit","date":"2026-10-11 08:06:52","revision":3739128}},"upgrade_notice":{"1.1.0":"<p>Adds customer login, registration, and My Account pages, plus rescheduling bookings from the admin.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3736320,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3736320,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3736320,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3736320,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3736320,"resolution":"1","location":"assets","locale":"","width":1912,"height":2873},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3736320,"resolution":"10","location":"assets","locale":"","width":1920,"height":988},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3736320,"resolution":"11","location":"assets","locale":"","width":1920,"height":988},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3736320,"resolution":"12","location":"assets","locale":"","width":1920,"height":988},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3736320,"resolution":"13","location":"assets","locale":"","width":1920,"height":988},"screenshot-14.png":{"filename":"screenshot-14.png","revision":3736320,"resolution":"14","location":"assets","locale":"","width":1920,"height":988},"screenshot-15.png":{"filename":"screenshot-15.png","revision":3736320,"resolution":"15","location":"assets","locale":"","width":1920,"height":988},"screenshot-16.png":{"filename":"screenshot-16.png","revision":3736320,"resolution":"16","location":"assets","locale":"","width":1920,"height":988},"screenshot-17.png":{"filename":"screenshot-17.png","revision":3736320,"resolution":"17","location":"assets","locale":"","width":1920,"height":988},"screenshot-18.png":{"filename":"screenshot-18.png","revision":3736320,"resolution":"18","location":"assets","locale":"","width":1920,"height":988},"screenshot-19.png":{"filename":"screenshot-19.png","revision":3739125,"resolution":"19","location":"assets","locale":"","width":1607,"height":865},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3736320,"resolution":"2","location":"assets","locale":"","width":1912,"height":2873},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3736320,"resolution":"3","location":"assets","locale":"","width":1912,"height":2382},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3736320,"resolution":"4","location":"assets","locale":"","width":1920,"height":988},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3736320,"resolution":"5","location":"assets","locale":"","width":1920,"height":988},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3736320,"resolution":"6","location":"assets","locale":"","width":1920,"height":988},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3736320,"resolution":"7","location":"assets","locale":"","width":1920,"height":988},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3736320,"resolution":"8","location":"assets","locale":"","width":1920,"height":988},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3736320,"resolution":"9","location":"assets","locale":"","width":1920,"height":988}},"screenshots":{"1":"Lesson catalogue on the front end, with price, duration, features, Book Now, and View Details for every lesson.","2":"Check availability: the student picks a location and date, chooses a generated time slot, and selects an available instructor.","3":"Booking checkout with a lesson summary, Stripe or direct payment choice, and the customisable booking form.","4":"Admin dashboard with today's bookings and revenue, pending bookings, all-time totals, a 6-month revenue chart, and quick stats.","5":"Bookings list with student, service, date and time, instructor, location, booking status, and payment status.","6":"Add a booking for a phone or walk-in student: services appear only when an instructor who teaches them is free.","7":"Services with category, locations, duration, price, featured badge, and a copyable shortcode.","8":"Service categories with a copyable shortcode to show one category's lessons on any page.","9":"Instructors with contact details and the services each instructor teaches.","10":"Training locations with address, phone, and status.","11":"Instructor availability by date range and daily hours, including split shifts.","12":"Add availability: choose the instructor, date range, and hours, or block a range for time off.","13":"General settings: currency, booking buffer, minimum notice, customer login, guest booking, and the booking flow.","14":"Booking form builder: add, reorder, and configure the fields shown at checkout.","15":"Payment settings: WooCommerce, direct (manual) payment, and Stripe Checkout.","16":"Email settings: admin notification address and the editable instructor email template.","17":"SMTP settings with a test email button.","18":"Shortcodes tab with copy buttons for every booking screen.","19":"My Account page: the logged-in student's bookings with date and time, location, instructor, booking status, and payment status."}},"plugin_section":[],"plugin_tags":[8133,274,282228,285306,285305],"plugin_category":[],"plugin_contributors":[270028],"plugin_business_model":[],"class_list":["post-380181","plugin","type-plugin","status-publish","hentry","plugin_tags-appointment-booking","plugin_tags-booking-system","plugin_tags-driving-school","plugin_tags-instructor-scheduling","plugin_tags-lesson-booking","plugin_contributors-lucrativeit","plugin_committers-lucrativeit"],"banners":{"banner":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/banner-772x250.png?rev=3736320","banner_2x":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/banner-1544x500.png?rev=3736320","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/icon-128x128.png?rev=3736320","icon_2x":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/icon-256x256.png?rev=3736320","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-1.png?rev=3736320","caption":"Lesson catalogue on the front end, with price, duration, features, Book Now, and View Details for every lesson."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-2.png?rev=3736320","caption":"Check availability: the student picks a location and date, chooses a generated time slot, and selects an available instructor."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-3.png?rev=3736320","caption":"Booking checkout with a lesson summary, Stripe or direct payment choice, and the customisable booking form."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-4.png?rev=3736320","caption":"Admin dashboard with today's bookings and revenue, pending bookings, all-time totals, a 6-month revenue chart, and quick stats."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-5.png?rev=3736320","caption":"Bookings list with student, service, date and time, instructor, location, booking status, and payment status."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-6.png?rev=3736320","caption":"Add a booking for a phone or walk-in student: services appear only when an instructor who teaches them is free."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-7.png?rev=3736320","caption":"Services with category, locations, duration, price, featured badge, and a copyable shortcode."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-8.png?rev=3736320","caption":"Service categories with a copyable shortcode to show one category's lessons on any page."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-9.png?rev=3736320","caption":"Instructors with contact details and the services each instructor teaches."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-10.png?rev=3736320","caption":"Training locations with address, phone, and status."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-11.png?rev=3736320","caption":"Instructor availability by date range and daily hours, including split shifts."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-12.png?rev=3736320","caption":"Add availability: choose the instructor, date range, and hours, or block a range for time off."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-13.png?rev=3736320","caption":"General settings: currency, booking buffer, minimum notice, customer login, guest booking, and the booking flow."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-14.png?rev=3736320","caption":"Booking form builder: add, reorder, and configure the fields shown at checkout."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-15.png?rev=3736320","caption":"Payment settings: WooCommerce, direct (manual) payment, and Stripe Checkout."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-16.png?rev=3736320","caption":"Email settings: admin notification address and the editable instructor email template."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-17.png?rev=3736320","caption":"SMTP settings with a test email button."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-18.png?rev=3736320","caption":"Shortcodes tab with copy buttons for every booking screen."},{"src":"https:\/\/ps.w.org\/lucrativeit-driving-school-management-system\/assets\/screenshot-19.png?rev=3739125","caption":"My Account page: the logged-in student's bookings with date and time, location, instructor, booking status, and payment status."}],"raw_content":"<!--section=description-->\n<p><strong>LucrativeIT Driving School Management System<\/strong> 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.<\/p>\n\n<p>It suits driving schools, driving instructors, motorcycle and truck training centres, and any lesson-based business that needs appointment scheduling by instructor and location.<\/p>\n\n<p>Plugin website: <a href=\"https:\/\/drivingschool.lucrativeit.com\/\">https:\/\/drivingschool.lucrativeit.com\/<\/a><\/p>\n\n<p>Documentation: <a href=\"https:\/\/docs.lucrativeit.com\/driving-school\/documentation.html\">https:\/\/docs.lucrativeit.com\/driving-school\/documentation.html<\/a><\/p>\n\n<h4>Why driving schools choose it<\/h4>\n\n<ul>\n<li>Students see only real, bookable times \u2014 no double bookings.<\/li>\n<li>Instructors are assigned automatically based on the services they teach and their availability.<\/li>\n<li>Take payment online with Stripe or WooCommerce, or accept direct (manual) payment.<\/li>\n<li>Fast React admin built on the WordPress REST API.<\/li>\n<li>Import demo data in one click to see the full booking flow straight away.<\/li>\n<\/ul>\n\n<h4>Driving lesson booking (front end)<\/h4>\n\n<ul>\n<li><strong>Ready-made pages<\/strong> \u2014 <strong>Book a Lesson<\/strong> and <strong>Booking Checkout<\/strong> pages are created automatically on activation.<\/li>\n<li><strong>Lesson catalogue<\/strong> \u2014 responsive service cards with category, price, duration, description, a feature checklist (for example \"Automatic car\", \"Free pickup\"), a <strong>Book Now<\/strong> button, and a \"View Details\" page for every lesson.<\/li>\n<li><strong>Featured lessons<\/strong> \u2014 mark services as featured and show them anywhere, such as your home page.<\/li>\n<li><strong>Two booking flows<\/strong> you can switch in Settings:\n\n<ul>\n<li><strong>Time slot picker<\/strong> \u2014 the student picks a location and date and chooses from generated start times (for example 09:00, 10:10, 11:20\u2026).<\/li>\n<li><strong>Time search<\/strong> \u2014 the student enters a location, date, and start time and the plugin checks who is free.<\/li>\n<\/ul><\/li>\n<li><strong>Instructor selection cards<\/strong> \u2014 after picking a time, the student chooses from the instructors available for that slot. Each slot also shows when the lesson ends.<\/li>\n<li><strong>Location-based booking<\/strong> \u2014 offer each lesson at one or more training locations.<\/li>\n<li><strong>Guest or logged-in booking<\/strong> \u2014 logged-in students have their name and email filled in automatically.<\/li>\n<li><strong>Customer accounts<\/strong> \u2014 optional <strong>Login<\/strong>, <strong>Registration<\/strong>, and <strong>My Account<\/strong> 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.<\/li>\n<li><strong>Dedicated checkout page<\/strong> with a booking summary (lesson, location, date and time, instructor, price) and a choice of payment method.<\/li>\n<li><strong>Customisable booking form<\/strong> \u2014 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.<\/li>\n<li>Mobile-friendly, accessible markup with keyboard-friendly time slot and instructor pickers.<\/li>\n<\/ul>\n\n<h4>Shortcodes<\/h4>\n\n<ul>\n<li><code>[ldsms_booking]<\/code> \u2014 show all active lessons with the booking flow.<\/li>\n<li><code>[ldsms_featured_services limit=\"3\"]<\/code> \u2014 show lessons marked as featured. Use <code>limit<\/code> to cap how many are shown, or remove it to show all.<\/li>\n<li><code>[ldsms_services category=\"your-category-slug\"]<\/code> \u2014 show lessons from a single category.<\/li>\n<li><code>[ldsms_service service=\"your-service-slug\"]<\/code> \u2014 show one lesson with its details and Book Now button.<\/li>\n<li><code>[ldsms_service_detail]<\/code> \u2014 optional lesson details page; \"View Details\" links open this page for the chosen lesson.<\/li>\n<li><code>[ldsms_checkout]<\/code> \u2014 the checkout page students are sent to after choosing a time.<\/li>\n<li><code>[ldsms_login]<\/code> \u2014 customer login form (requires customer login to be enabled in Settings).<\/li>\n<li><code>[ldsms_register]<\/code> \u2014 customer registration form (requires customer login to be enabled in Settings).<\/li>\n<li><code>[ldsms_account]<\/code> \u2014 My Account page listing the logged-in student's bookings; shows the login form to logged-out visitors.<\/li>\n<\/ul>\n\n<p>Every category and service shows its exact shortcode with a <strong>Copy<\/strong> button, and <strong>Settings \u2192 Shortcodes<\/strong> lists them all.<\/p>\n\n<h4>Driving school management (admin)<\/h4>\n\n<ul>\n<li><strong>Dashboard<\/strong> \u2014 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.<\/li>\n<li><strong>Service categories<\/strong> \u2014 group lessons (for example Driving Lessons, Test Preparation, Motorcycle Training) with a description, status, sort order, and a copyable category shortcode.<\/li>\n<li><strong>Services \/ lessons<\/strong> \u2014 name, slug, description, feature list, duration, price, currency, category, featured flag, status, the locations where each lesson is offered, and a copyable shortcode.<\/li>\n<li><strong>Instructors<\/strong> \u2014 profile, email, phone, bio, status, and the services each instructor teaches.<\/li>\n<li><strong>Locations<\/strong> \u2014 address, city, state, postcode, phone, description, status, and sort order for every training centre or pickup point.<\/li>\n<li><strong>Instructor availability<\/strong> \u2014 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.<\/li>\n<li><strong>Bookings<\/strong> \u2014 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 <strong>reschedule<\/strong> a booking to a new date, time, location, or instructor with a live availability check.<\/li>\n<li><strong>Search<\/strong> on every admin list.<\/li>\n<\/ul>\n\n<h4>Smart scheduling rules<\/h4>\n\n<ul>\n<li>Real-time availability that respects instructor hours and existing bookings.<\/li>\n<li>A lesson is only offered when an instructor who teaches it is free for its full length.<\/li>\n<li><strong>Buffer time<\/strong> between two lessons for the same instructor.<\/li>\n<li><strong>Minimum notice<\/strong> \u2014 stop last-minute bookings (for example at least 2 hours ahead).<\/li>\n<li><strong>Break between slots<\/strong> for the slot picker (for example 50-minute lessons with a 10-minute break start on the hour).<\/li>\n<li>Times are calculated in your WordPress site time zone.<\/li>\n<\/ul>\n\n<h4>Payments<\/h4>\n\n<ul>\n<li><strong>Stripe Checkout<\/strong> \u2014 secure card payments with webhook confirmation and automatic \"paid\" status.<\/li>\n<li><strong>WooCommerce<\/strong> \u2014 send bookings to WooCommerce checkout and use any WooCommerce payment gateway; order status, including refunds, syncs back to the booking.<\/li>\n<li><strong>Direct payment<\/strong> \u2014 accept bank transfer or cash with your own payment instructions, then mark the booking paid in the admin.<\/li>\n<li>Offer Stripe and direct payment together and let students choose at checkout.<\/li>\n<li>Card details are entered on Stripe's hosted page and never stored on your site.<\/li>\n<li>Multi-currency support with a site-wide default currency.<\/li>\n<\/ul>\n\n<h4>Email notifications<\/h4>\n\n<ul>\n<li>Instructors are emailed automatically when a lesson is booked with them or rescheduled to them (can be turned off).<\/li>\n<li>Set the admin notification email address.<\/li>\n<li>Editable subject and message templates with placeholders: <code>{booking_code}<\/code>, <code>{instructor_name}<\/code>, <code>{service_name}<\/code>, <code>{location_name}<\/code>, <code>{starts_at}<\/code>, <code>{ends_at}<\/code>, <code>{customer_name}<\/code>, <code>{customer_email}<\/code>, <code>{customer_phone}<\/code>, <code>{customer_dob}<\/code>, <code>{status}<\/code>, <code>{notes}<\/code>, and <code>{form_fields}<\/code> for answers to custom booking form fields.<\/li>\n<li>Built-in <strong>SMTP settings<\/strong> (host, port, encryption, username, password, from name and email) and a <strong>test email<\/strong> button.<\/li>\n<\/ul>\n\n<h4>Easy setup with demo data<\/h4>\n\n<ul>\n<li>On first activation you are asked whether to <strong>import demo data<\/strong>: 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.<\/li>\n<li>Prefer to start fresh? Skip it \u2014 while your school has no data, the dashboard keeps offering a one-click demo import.<\/li>\n<li>Already added your own services and instructors? The dashboard offers <strong>Import sample bookings<\/strong> until your first paid booking. Sample booking codes start with <code>DEMO<\/code>, so they are easy to delete later.<\/li>\n<\/ul>\n\n<h4>Built for developers<\/h4>\n\n<ul>\n<li>Modern WordPress React stack (<code>@wordpress\/element<\/code>, <code>@wordpress\/components<\/code>, <code>@wordpress\/api-fetch<\/code>).<\/li>\n<li>Custom REST API under <code>lucrativeit-driving-school-management-system\/v1<\/code>, with capability checks and nonces.<\/li>\n<li>Prepared SQL queries, sanitised input, and escaped output throughout.<\/li>\n<li>Extensible with actions for every created, updated, and deleted record \u2014 for example <code>ldsms_booking_created<\/code>, <code>ldsms_booking_updated<\/code>, <code>ldsms_booking_rescheduled<\/code>, <code>ldsms_customer_registered<\/code>, <code>ldsms_payment_completed<\/code>, <code>ldsms_service_created<\/code>, <code>ldsms_instructor_updated<\/code>, <code>ldsms_availability_deleted<\/code>, and <code>ldsms_settings_updated<\/code> \u2014 plus filters such as <code>ldsms_rest_controllers<\/code>, <code>ldsms_service_providers<\/code>, <code>ldsms_demo_data<\/code>, and the <code>ldsms_demo_data_imported<\/code> action.<\/li>\n<li>Translation ready, with RTL stylesheets included.<\/li>\n<li>Clean uninstall: deleting the plugin removes its tables and settings. Deactivating keeps all data.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect to one third-party service, <strong>Stripe<\/strong>, to take online card payments. It is only used when a site administrator enables the Stripe payment method in <strong>Settings<\/strong> and enters a Stripe secret key. If Stripe is not enabled, the plugin makes no requests to Stripe or to any other external service.<\/p>\n\n<h4>Stripe (payment processing)<\/h4>\n\n<p>Stripe is an online payment platform. The plugin uses the Stripe Checkout API (<code>https:\/\/api.stripe.com<\/code>) to create a secure, Stripe-hosted payment page for a booking and then to confirm that the payment was completed.<\/p>\n\n<p>What data is sent and when:<\/p>\n\n<ul>\n<li><strong>When a student chooses to pay with Stripe at checkout<\/strong>, 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.<\/li>\n<li><strong>When the student returns from Stripe to your site after paying<\/strong>, 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.<\/li>\n<li>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.<\/li>\n<li>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.<\/li>\n<\/ul>\n\n<p>This service is provided by Stripe, Inc.:<\/p>\n\n<ul>\n<li>Stripe Services Agreement (terms of service for merchants): <a href=\"https:\/\/stripe.com\/legal\/ssa\">https:\/\/stripe.com\/legal\/ssa<\/a><\/li>\n<li>Stripe Consumer Terms of Service: <a href=\"https:\/\/stripe.com\/legal\/consumer\">https:\/\/stripe.com\/legal\/consumer<\/a><\/li>\n<li>Stripe Privacy Policy: <a href=\"https:\/\/stripe.com\/privacy\">https:\/\/stripe.com\/privacy<\/a><\/li>\n<\/ul>\n\n<h4>Other connections you configure<\/h4>\n\n<ul>\n<li><strong>SMTP email (optional):<\/strong> 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.<\/li>\n<li><strong>WooCommerce (optional):<\/strong> 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.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>lucrativeit-driving-school-management-system<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install it from <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate the plugin from the <strong>Plugins<\/strong> screen.<\/li>\n<li>You are taken to <strong>Driving School \u2192 Dashboard<\/strong>. Choose <strong>Import demo data<\/strong> to explore with sample content, or <strong>Start without demo data<\/strong>.<\/li>\n<li>Add your locations, service categories, services, instructors, and instructor availability.<\/li>\n<li>Create a page with <code>[ldsms_booking]<\/code> (or <code>[ldsms_services category=\"slug\"]<\/code>) for your lesson list, and a page with <code>[ldsms_checkout]<\/code> for checkout.<\/li>\n<li>Open <strong>Settings<\/strong> to choose the booking flow, payment methods, currency, scheduling rules, booking form fields, and email settings.<\/li>\n<\/ol>\n\n<p>Compiled assets ship in the <code>build\/<\/code> folder, so you do <strong>not<\/strong> need Node.js or npm.<\/p>\n\n<p>For a full setup and user guide with screenshots, see the <a href=\"https:\/\/docs.lucrativeit.com\/driving-school\/documentation.html\">documentation<\/a>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20plugin%20only%20for%20driving%20schools%3F\"><h3>Is this plugin only for driving schools?<\/h3><\/dt>\n<dd><p>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 \u2014 for example motorcycle training, swimming lessons, or tutoring.<\/p><\/dd>\n<dt id=\"can%20students%20book%20without%20creating%20an%20account%3F\"><h3>Can students book without creating an account?<\/h3><\/dt>\n<dd><p>Yes. Guest booking is supported. Logged-in users get their name and email filled in automatically.<\/p><\/dd>\n<dt id=\"can%20students%20log%20in%20and%20see%20their%20bookings%3F\"><h3>Can students log in and see their bookings?<\/h3><\/dt>\n<dd><p>Yes. Turn on <strong>Enable customer login and registration<\/strong> in <strong>Settings \u2192 General<\/strong> and save. The plugin creates <strong>Customer Login<\/strong>, <strong>Customer Registration<\/strong>, and <strong>My Account<\/strong> pages. Bookings placed while logged in appear on the student's My Account page. To require an account for every booking, also turn off <strong>Allow guest booking<\/strong>.<\/p><\/dd>\n<dt id=\"can%20i%20reschedule%20a%20booking%3F\"><h3>Can I reschedule a booking?<\/h3><\/dt>\n<dd><p>Yes. In <strong>Bookings<\/strong>, click <strong>Reschedule<\/strong> 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.<\/p><\/dd>\n<dt id=\"how%20are%20instructors%20assigned%20to%20a%20booking%3F\"><h3>How are instructors assigned to a booking?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"which%20payment%20methods%20are%20supported%3F\"><h3>Which payment methods are supported?<\/h3><\/dt>\n<dd><p>Stripe Checkout, WooCommerce (with any WooCommerce gateway), and direct\/manual payment with your own instructions.<\/p><\/dd>\n<dt id=\"can%20i%20prevent%20back-to-back%20or%20last-minute%20bookings%3F\"><h3>Can I prevent back-to-back or last-minute bookings?<\/h3><\/dt>\n<dd><p>Yes. Use <strong>Buffer time<\/strong> to add a gap between lessons for the same instructor, and <strong>Minimum notice<\/strong> to block bookings too close to the start time.<\/p><\/dd>\n<dt id=\"can%20i%20import%20demo%20data%20later%3F\"><h3>Can I import demo data later?<\/h3><\/dt>\n<dd><p>Yes. While there are no categories, services, instructors, or availability, the dashboard shows an <strong>Import demo data<\/strong> option. To protect your real data, the import is blocked once you have added your own records.<\/p><\/dd>\n<dt id=\"can%20i%20customise%20the%20booking%20form%3F\"><h3>Can I customise the booking form?<\/h3><\/dt>\n<dd><p>Yes. In <strong>Settings<\/strong>, add, reorder, and configure extra fields (text, text area, email, phone, number, date, dropdown, radio, checkbox).<\/p><\/dd>\n<dt id=\"does%20it%20send%20email%20notifications%3F\"><h3>Does it send email notifications?<\/h3><\/dt>\n<dd><p>Yes. Instructors are emailed for every new booking. You can edit the template and configure SMTP for reliable delivery.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20build%20anything%20with%20npm%3F\"><h3>Do I need to build anything with npm?<\/h3><\/dt>\n<dd><p>No. Production-ready assets are included in the <code>build\/<\/code> folder.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Customer accounts. Optional Login (<code>[ldsms_login]<\/code>), Registration (<code>[ldsms_register]<\/code>), and My Account (<code>[ldsms_account]<\/code>) pages, created automatically when enabled.<\/li>\n<li>New: My Account lists the logged-in student's bookings with date and time, location, instructor, booking status, payment status, and price.<\/li>\n<li>New: \"Enable customer login and registration\" setting. With it on, turning off \"Allow guest booking\" requires students to log in before booking.<\/li>\n<li>New: Checkout offers Log in and Create account buttons to logged-out students, and links logged-in students to My Account after booking.<\/li>\n<li>New: Reschedule bookings from the admin Bookings list, with a live availability check and instructor email notification.<\/li>\n<li>New: <code>ldsms_booking_rescheduled<\/code> and <code>ldsms_customer_registered<\/code> actions.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Online driving lesson booking with time slot picker and time search flows.<\/li>\n<li>Instructor selection cards for the chosen time slot.<\/li>\n<li>Service categories, services, instructors, locations, and instructor availability management.<\/li>\n<li>Bookings management with admin booking creation and live slot checks.<\/li>\n<li>Stripe Checkout, WooCommerce, and direct payment support.<\/li>\n<li>Instructor email notifications with SMTP settings and test email.<\/li>\n<li>Custom booking form builder.<\/li>\n<li>Buffer time, minimum notice, and slot break scheduling rules.<\/li>\n<li>Admin dashboard with revenue and booking statistics.<\/li>\n<li>First-run demo data import with sample bookings, also available from the dashboard.<\/li>\n<\/ul>","raw_excerpt":"Driving school booking system: online driving lesson booking, instructor scheduling, live availability, and Stripe or WooCommerce payments.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/380181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=380181"}],"author":[{"embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lucrativeit"}],"wp:attachment":[{"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=380181"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=380181"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=380181"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=380181"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=380181"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=380181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}