{"id":296458,"date":"2026-06-01T11:11:19","date_gmt":"2026-06-01T11:11:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/brainstudioz-booking\/"},"modified":"2026-06-04T11:58:37","modified_gmt":"2026-06-04T11:58:37","slug":"bookpilot-ai","status":"publish","type":"plugin","link":"https:\/\/kal.wordpress.org\/plugins\/bookpilot-ai\/","author":23475038,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.3","stable_tag":"1.1.3","tested":"7.0","requires":"5.8","requires_php":"8.0","requires_plugins":null,"header_name":"BookPilot AI","header_author":"BrainStudioz","header_description":"A comprehensive booking management system for WordPress. Manage services, staff, appointments, payments, and notifications from a single powerful dashboard.","assets_banners_color":"cacdd6","last_updated":"2026-06-04 11:58:37","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/bookpilot-ai\/","header_author_uri":"https:\/\/brainstudioz.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":72,"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":"brainstudioz","date":"2026-06-01 11:10:56"},"1.1.3":{"tag":"1.1.3","author":"brainstudioz","date":"2026-06-04 11:58:37"}},"upgrade_notice":{"1.1.3":"<p>Final Plugin Check cleanup. Safe drop-in update.<\/p>","1.1.2":"<p>Plugin Check compliance fixes (output escaping, i18n comments, build cleanup). Safe drop-in update.<\/p>","1.1.1":"<p>Minor compliance and translation-readiness fixes. Safe drop-in update over 1.1.0.<\/p>","1.1.0":"<p>Adds a custom Notifications manager, a configurable Staff widget with a &quot;book this staff&quot; popup, and a [bpai_staff] shortcode. New tables are created automatically. Back up before updating.<\/p>","1.0.0":"<p>Initial release. No upgrade required.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3561020,"resolution":"772x250","location":"assets","locale":"","width":1983,"height":793}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.3"],"block_files":[],"assets_screenshots":{"Screenshot-1.png":{"filename":"Screenshot-1.png","revision":3561004,"resolution":"1","location":"assets","locale":"","width":1919,"height":989},"Screenshot-10.png":{"filename":"Screenshot-10.png","revision":3561004,"resolution":"10","location":"assets","locale":"","width":1906,"height":726},"Screenshot-2.png":{"filename":"Screenshot-2.png","revision":3561004,"resolution":"2","location":"assets","locale":"","width":1919,"height":965},"Screenshot-3.png":{"filename":"Screenshot-3.png","revision":3561004,"resolution":"3","location":"assets","locale":"","width":1919,"height":990},"Screenshot-4.png":{"filename":"Screenshot-4.png","revision":3561004,"resolution":"4","location":"assets","locale":"","width":1912,"height":982},"Screenshot-5.png":{"filename":"Screenshot-5.png","revision":3561004,"resolution":"5","location":"assets","locale":"","width":1916,"height":988},"Screenshot-6.png":{"filename":"Screenshot-6.png","revision":3561004,"resolution":"6","location":"assets","locale":"","width":1916,"height":978},"Screenshot-7.png":{"filename":"Screenshot-7.png","revision":3561004,"resolution":"7","location":"assets","locale":"","width":1919,"height":633},"Screenshot-8.png":{"filename":"Screenshot-8.png","revision":3561004,"resolution":"8","location":"assets","locale":"","width":1915,"height":656},"Screenshot-9.png":{"filename":"Screenshot-9.png","revision":3561004,"resolution":"9","location":"assets","locale":"","width":1909,"height":712}},"screenshots":{"1":"Dashboard \u2014 at-a-glance booking stats and upcoming appointments.","2":"Booking widget \u2014 Grid view with Elementor style controls.","3":"Booking widget \u2014 Calendar view.","4":"Booking modal \u2014 5-step flow (staff \u2192 date\/time \u2192 customer info \u2192 payment \u2192 confirmation).","5":"Admin bookings list \u2014 sortable, filterable, with inline status update.","6":"Reports \u2014 bookings and revenue by service and staff.","7":"Settings \u2014 payments, notifications, and WooCommerce integration."}},"plugin_section":[],"plugin_tags":[8132,269,268,11420,286],"plugin_category":[40,45],"plugin_contributors":[265320],"plugin_business_model":[],"class_list":["post-296458","plugin","type-plugin","status-publish","hentry","plugin_tags-appointments","plugin_tags-booking","plugin_tags-scheduling","plugin_tags-staff","plugin_tags-woocommerce","plugin_category-calendar-and-events","plugin_category-ecommerce","plugin_contributors-brainstudioz","plugin_committers-brainstudioz"],"banners":{"banner":"https:\/\/ps.w.org\/bookpilot-ai\/assets\/banner-772x250.png?rev=3561020","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/bookpilot-ai_cacdd6.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/bookpilot-ai\/assets\/Screenshot-1.png?rev=3561004","caption":"Dashboard \u2014 at-a-glance booking stats and upcoming appointments."},{"src":"https:\/\/ps.w.org\/bookpilot-ai\/assets\/Screenshot-2.png?rev=3561004","caption":"Booking widget \u2014 Grid view with Elementor style controls."},{"src":"https:\/\/ps.w.org\/bookpilot-ai\/assets\/Screenshot-3.png?rev=3561004","caption":"Booking widget \u2014 Calendar view."},{"src":"https:\/\/ps.w.org\/bookpilot-ai\/assets\/Screenshot-4.png?rev=3561004","caption":"Booking modal \u2014 5-step flow (staff \u2192 date\/time \u2192 customer info \u2192 payment \u2192 confirmation)."},{"src":"https:\/\/ps.w.org\/bookpilot-ai\/assets\/Screenshot-5.png?rev=3561004","caption":"Admin bookings list \u2014 sortable, filterable, with inline status update."},{"src":"https:\/\/ps.w.org\/bookpilot-ai\/assets\/Screenshot-6.png?rev=3561004","caption":"Reports \u2014 bookings and revenue by service and staff."},{"src":"https:\/\/ps.w.org\/bookpilot-ai\/assets\/Screenshot-7.png?rev=3561004","caption":"Settings \u2014 payments, notifications, and WooCommerce integration."},{"src":"https:\/\/ps.w.org\/bookpilot-ai\/assets\/Screenshot-8.png?rev=3561004","caption":""},{"src":"https:\/\/ps.w.org\/bookpilot-ai\/assets\/Screenshot-9.png?rev=3561004","caption":""},{"src":"https:\/\/ps.w.org\/bookpilot-ai\/assets\/Screenshot-10.png?rev=3561004","caption":""}],"raw_content":"<!--section=description-->\n<p>BookPilot AI lets you accept and manage appointments directly from your WordPress site. Build a fully branded booking experience \u2014 no third-party redirect required.<\/p>\n\n<p><strong>Key features:<\/strong><\/p>\n\n<ul>\n<li><strong>Services &amp; staff<\/strong> \u2014 Create unlimited services with custom pricing, duration, and capacity. Assign staff members with individual schedules and time-off.<\/li>\n<li><strong>Three booking views<\/strong> \u2014 Embed the booking widget in Grid, List, or Calendar layout via the included Elementor widget.<\/li>\n<li><strong>Payments<\/strong> \u2014 Accept Cash\/Pay on Arrival, PayPal Standard, or Stripe. Optionally route everything through <strong>WooCommerce<\/strong> for unified order management.<\/li>\n<li><strong>Coupons<\/strong> \u2014 Create percentage or fixed-amount discount codes with expiry dates and usage limits.<\/li>\n<li><strong>Notifications manager<\/strong> \u2014 A dedicated <strong>Notifications<\/strong> screen to create unlimited custom email notifications. Choose action-based triggers (approved, pending, rejected, cancelled, details changed, rescheduled) or scheduled reminders\/follow-ups (X minutes before\/after the appointment), filter by service and appointment status, send to multiple recipients (client, staff, admins, custom address), and write the message with a full <strong>rich text editor<\/strong> and dynamic placeholders.<\/li>\n<li><strong>Staff widget<\/strong> \u2014 Show your team in a Grid or List with five layout presets (Card, Overlay, Minimal, Classic, Compact), columns, ordering, pagination, AJAX category filter chips, and a built-in <strong>\"Book Now\"<\/strong> popup that opens the booking flow pre-filtered to that staff member's services.<\/li>\n<li><strong>Works in any page builder<\/strong> \u2014 Use the <code>[bpai_staff]<\/code> shortcode in Gutenberg, WPBakery, Divi, Beaver Builder, or the Classic editor \u2014 not just Elementor.<\/li>\n<li><strong>iCal export<\/strong> \u2014 Let customers add their appointment to any calendar app.<\/li>\n<li><strong>Elementor widgets<\/strong> \u2014 Style every aspect of the booking and staff widgets (colours, typography, card layout, button, calendar) with Elementor's visual controls. No coding required.<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin optionally connects to the following third-party services:<\/p>\n\n<h4>Stripe (optional)<\/h4>\n\n<p>If you enable Stripe payments in Settings \u2192 Payments, the plugin loads the Stripe.js library from <code>https:\/\/js.stripe.com\/v3\/<\/code> on any page that contains the booking form. This is required by Stripe for PCI DSS compliance; bundling Stripe.js locally is prohibited by Stripe's terms.<\/p>\n\n<p>When a customer submits a booking with Stripe as the payment method, their card details are sent directly from the browser to Stripe's servers to create a Payment Intent. <strong>No card data passes through your WordPress server.<\/strong> The plugin sends the Payment Intent amount and currency to Stripe's API (<code>https:\/\/api.stripe.com\/v1\/payment_intents<\/code>) using your configured secret key.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/stripe.com\/legal\/ssa\">Stripe Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/stripe.com\/privacy\">Stripe Privacy Policy<\/a><\/li>\n<\/ul>\n\n<h4>PayPal (optional)<\/h4>\n\n<p>If you enable PayPal payments, customers are redirected to PayPal's hosted checkout page to complete payment. No payment data is processed on your server.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/www.paypal.com\/us\/legalhub\/useragreement-full\">PayPal User Agreement<\/a><\/li>\n<li><a href=\"https:\/\/www.paypal.com\/us\/legalhub\/privacy-full\">PayPal Privacy Statement<\/a><\/li>\n<\/ul>\n\n<h3>Source Code<\/h3>\n\n<p>The full, human-readable source code for this plugin (including all build assets and JavaScript source) is publicly available at: https:\/\/github.com\/derwaish05\/bookpilot-ai<\/p>\n\n<p>The admin calendar view uses FullCalendar v5.11.5 (MIT licence). Source: https:\/\/github.com\/fullcalendar\/fullcalendar\nThe reports view uses Chart.js v4.5.1 (MIT licence). Source: https:\/\/github.com\/chartjs\/Chart.js\nThe booking date picker uses Flatpickr v4.6.13 (MIT licence). Source: https:\/\/github.com\/flatpickr\/flatpickr<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>bookpilot-ai<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>BookPilot AI \u2192 Settings<\/strong> to configure your services, staff, and payment options.<\/li>\n<li>Add the <strong>BookPilot AI<\/strong> Elementor widget to any page, or use the <code>[bpai_booking_form]<\/code> shortcode.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20work%20without%20elementor%3F\"><h3>Does this plugin work without Elementor?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>[bpai_booking_form]<\/code> shortcode for the booking form and the <code>[bpai_staff]<\/code> shortcode for the staff listing on any page or post. Both work in Gutenberg, WPBakery, Divi, Beaver Builder, and the Classic editor.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20custom%20notification%3F\"><h3>How do I add a custom notification?<\/h3><\/dt>\n<dd><p>Go to <strong>BookPilot AI \u2192 Notifications<\/strong> and click <strong>Add Notification<\/strong>. On the editor page, give it a name, pick an action-based trigger or a scheduled time (before\/after the appointment), choose the recipients (client, staff, administrators or a custom email), optionally limit it to specific services, then write the subject and message using the rich text editor. Click any placeholder chip (such as <code>{customer_name}<\/code> or <code>{service_name}<\/code>) to insert it. Scheduled reminders and follow-ups rely on WordPress cron running.<\/p><\/dd>\n<dt id=\"how%20do%20i%20show%20my%20staff%20and%20let%20visitors%20book%20a%20specific%20person%3F\"><h3>How do I show my staff and let visitors book a specific person?<\/h3><\/dt>\n<dd><p>Add the <strong>BookPilot AI \u2014 Staff<\/strong> Elementor widget or the <code>[bpai_staff]<\/code> shortcode to a page. Set the <strong>Book Action<\/strong> to \"Open booking form\" and the \"Book Now\" button will open a popup listing only that staff member's services; choosing one starts the booking flow with that staff member locked in.<\/p><\/dd>\n<dt id=\"can%20i%20use%20woocommerce%20for%20payment%3F\"><h3>Can I use WooCommerce for payment?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Settings \u2192 Payments<\/strong> and enable <em>Use WooCommerce for checkout &amp; order management<\/em>. Bookings will flow through the WooCommerce cart and checkout, and booking status will sync automatically with the WooCommerce order status.<\/p><\/dd>\n<dt id=\"is%20stripe%20or%20paypal%20required%3F\"><h3>Is Stripe or PayPal required?<\/h3><\/dt>\n<dd><p>No. Cash \/ Pay on Arrival is enabled by default. Stripe and PayPal are optional.<\/p><\/dd>\n<dt id=\"where%20is%20booking%20data%20stored%3F\"><h3>Where is booking data stored?<\/h3><\/dt>\n<dd><p>All bookings, services, staff, and schedules are stored in your own WordPress database. No booking data is sent to external servers by this plugin.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20add%20any%20%22powered%20by%22%20links%3F\"><h3>Does the plugin add any \"powered by\" links?<\/h3><\/dt>\n<dd><p>No. The plugin does not add any front-end branding or links without your permission.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Final Plugin Check cleanup: removed the dot-file from the build, moved inline phpcs annotations onto the flagged lines, and annotated the admin dashboard's prepared stat queries. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Plugin Check fixes: escaped all flagged output, added missing \"translators:\" comments, sanitised\/justified remaining input handling, bumped \"Tested up to\", trimmed the upgrade notice, and removed development-only files from the distributed build. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Compliance &amp; polish: added missing i18n translators comments and minor readme\/header housekeeping ahead of WordPress.org submission. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<p><strong>New<\/strong>\n* <strong>Notifications manager<\/strong> \u2014 New <strong>BookPilot AI \u2192 Notifications<\/strong> screen to create and manage unlimited custom email notifications, replacing the three fixed templates in Settings. Each notification has its own dedicated add\/edit page.\n* Action-based triggers: Approved, Pending, Rejected, Cancelled, Details changed, Rescheduled.\n* Scheduled notifications: send a configurable number of minutes\/hours <strong>before<\/strong> or <strong>after<\/strong> the appointment (e.g. a 24-hour reminder or a follow-up), driven by the hourly cron with per-booking de-duplication.\n* Per-notification targeting: filter by <strong>service<\/strong> and by <strong>appointment status<\/strong>, and an optional <strong>\"Send only this notification\"<\/strong> to suppress the default for the chosen services.\n* Multiple recipients per notification: <strong>Client, Staff, Administrators, and\/or a Custom email address<\/strong>.\n* <strong>Rich text (TinyMCE) editor<\/strong> for the message body, plus one-click dynamic placeholders ({customer_name}, {service_name}, {staff_name}, {date}, {time}, {price}, {booking_id}, and more).\n* Enable\/disable toggle and <strong>Send test<\/strong> for every notification.\n* <strong>Staff widget<\/strong> (Elementor) \u2014 Display staff in Grid or List with five layout presets (Card Grid, Grid Overlay, Minimal, Classic, Compact), column count, photo shape, ordering (name, date added, random, manual display order), posts-per-page, AJAX pagination, and AJAX category filter chips.\n* Staff \"Book Now\" can now open a popup of <strong>only that staff member's services<\/strong> and run the full booking flow with the staff member locked in.\n* New <strong><code>[bpai_staff]<\/code> shortcode<\/strong> so the staff listing works in Gutenberg, WPBakery, Divi, Beaver Builder, and the Classic editor (not only Elementor).\n* New <strong>Display Order<\/strong> field on the staff add\/edit screen for manual ordering.<\/p>\n\n<p><strong>Changed<\/strong>\n* The admin menu was reorganised (Dashboard, Calendar, Appointments, Staff Members, Services, Customers, Notifications, \u2026) and \"Bookings\" is now labelled \"Appointments\".\n* The booking modal markup was centralised into a single shared renderer used by the booking widget, the staff widget, and the shortcode.\n* Brand accent colour updated from #3498db to #3858e9 across the plugin.<\/p>\n\n<p><strong>Developer<\/strong>\n* New database tables <code>{prefix}_bpai_notifications<\/code> and <code>{prefix}_bpai_notification_log<\/code>; new <code>display_order<\/code>, and notification <code>recipients<\/code>, <code>services<\/code>, <code>appointment_status<\/code>, and <code>send_only<\/code> columns. All created\/upgraded automatically on update.<\/p>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A comprehensive booking management system for WordPress. Manage services, staff, appointments, payments, and notifications from one dashboard.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=296458"}],"author":[{"embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/brainstudioz"}],"wp:attachment":[{"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296458"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296458"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296458"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296458"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296458"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}