Description
BookWellNow helps you take service bookings on your WordPress site. Customers pick a service, a staff member, and an available time, then confirm. You can collect PayPal Checkout or pay-on-arrival payments, and optionally create a Zoom meeting for the visit.
There is no per-staff or per-service limit in the free version. You manage working hours, shifts, holidays, and special days from the WordPress admin. Customers can log in to a panel to view history and cancel when you allow it.
Free Features
- Appointment Booking Popup Button
- Free Zoom Meeting
- Overnight booking supported
- Free Unlimited Staff Members
- Free Unlimited Services
- Free PayPal Payment Gateway
- Free Staff Shift Management
- Free Staff Holiday Management
- Free Customer Panel
- Free Customer Appointment Cancellation
- Lightweight & Very Fast Loading
- Online Appointment Scheduling
- Booking Calendar Management
- Mobile-Friendly Booking Experience
Pro Features
The free plugin covers the workflow above. BookWellNow Pro adds:
- Google Calendar two-way sync
- Google Meet
- Custom fields
- Buffer time
- Reschedule
- Scheduled notifications
- WooCommerce payment gateways
- Service extras and rules
Getting started
- Activate the plugin and open Book Well Now in the admin menu.
- Add at least one service and one staff member, then assign the staff member to the service.
- Set working hours (and holidays if needed) for that staff member.
- Place a shortcode on a page (see below).
- Optionally enable PayPal or Zoom under Settings.
Shortcodes
Create shortcodes from Book Well Now Shortcode Generator, or paste them into a page or post.
Form popup button
[bookwell_booking_button]
Places a button that opens the form in a popup. You do not need [bookwell_booking] on the same page.
service_id– pre-select a service (useful on a service page)staff_id– show only that staff member’s serviceslabelandclass– button text and extra CSS class
Examples:
[bookwell_booking_button label="Book Now"]
[bookwell_booking_button service_id="2" label="Book this service"]
[bookwell_booking_button staff_id="1" label="Book with this staff"]
[bookwell_booking_button service_id="2" staff_id="1" label="Book now"]
Inline form
[bookwell_booking]
Shows the form on the page. In Settings Appearance (or Shortcode Generator) choose Small Booking Wizard or Service List with Popup.
Optional attributes: staff_id, service_id
[bookwell_booking]
[bookwell_booking staff_id="1" service_id="2"]
Customer panel
[bookwellnow_customer_panel]
Shows the logged-in customer area (history, profile, and cancellation).
Availability
- Customers see only open dates and time slots
- Overlapping times for the same staff member are blocked
- Working hours, breaks, holidays, and special days control what is offered
- Overnight hours: set start and end across midnight (for example 2:00 PM to 2:00 AM the next day)
Staff and services
- Add as many staff members and services as you need
- Assign services to staff and set duration and price
- Auto-select when only one service or staff member applies
Customer panel
- Customers log in to see upcoming and past visits
- They can cancel when cancellation is enabled
- Optional WordPress user creation when someone books (Settings Customer Panel)
Payments
- Pay on arrival / manual
- PayPal Checkout (sandbox and live)
Emails
- Confirmation and status update emails
- Placeholders for Zoom join/host links when Zoom is enabled
Who it is for
Clinics, salons, trainers, tutors, consultants, local trades, photographers, auto shops, event studios, and pet services – any team that sells time-based services.
Security and permissions
Admin screens use capability checks and nonces. Notification settings are limited to users who can manage plugin settings.
Third-Party Libraries
This plugin bundles the following third-party libraries (see THIRD-PARTY-LICENSES.txt for versions and licenses):
- Vue.js (MIT) – https://vuejs.org/
- Element Plus / Element Plus Icons (MIT) – https://element-plus.org/
- Axios (MIT) – https://axios-http.com/
- Qs (BSD-3-Clause) – https://github.com/ljharb/qs
- SortableJS (MIT) – https://sortablejs.github.io/Sortable/
- Chart.js (MIT) – https://www.chartjs.org/
- intl-tel-input (MIT) – https://github.com/jackocnr/intl-tel-input
Bundled minified vendor files (for example *.min.js) are third-party libraries, not obfuscated plugin code. Upstream sources are listed in THIRD-PARTY-LICENSES.txt.
External Services
Google Fonts
When a Google font is selected in appearance settings, the booking form may load fonts from https://fonts.googleapis.com/ (Google LLC). Browser request data (IP, user agent, requested font) is sent only on pages where the booking form is shown. Privacy: https://policies.google.com/privacy
PayPal Checkout
When PayPal is enabled, payments use the PayPal Checkout SDK and Orders API (https://www.paypal.com/sdk/js, https://api-m.paypal.com/, sandbox API). Booking amount, currency, appointment reference, and standard request headers are sent during checkout. Credentials are stored in WordPress; only the Client ID is exposed on the frontend. Privacy: https://www.paypal.com/us/legalhub/privacy-full
Zoom Meetings
When Zoom is enabled (Settings Integrations), BookWellNow uses Zoom Server-to-Server OAuth (https://zoom.us/oauth/token, https://api.zoom.us/v2/) to list users and create/delete meetings. Account ID, Client ID, and Client Secret are stored in WordPress. Meeting join/host URLs are saved on appointments. Privacy: https://explore.zoom.us/en/privacy/
Installation
- Upload the plugin to
/wp-content/plugins/ - Activate it from Plugins in WordPress
- Open Book Well Now in the dashboard
- Add a service and staff member, then put
[bookwell_booking](or the popup button shortcode) on a page
FAQ
-
How do I put the form on a page?
-
Add
[bookwell_booking]to any page. You can generate a shortcode with optional staff or service filters from Book Well Now Shortcode Generator. -
Use
[bookwell_booking_button]. Example:[bookwell_booking_button service_id="2" label="Book now"]. The same form opens in a popup. -
Can I set staff working hours and time off?
-
Yes. Each staff member has shifts, breaks, holidays, and special days.
-
Can customers cancel on their own?
-
Yes, from the customer panel when cancellation is enabled.
-
Does it stop two people taking the same slot?
-
Yes. Availability is checked when the slot list is built and again when the booking is saved.
-
Is there a staff or service limit?
-
No. The free version does not cap how many staff members or services you can add.
-
Can I take PayPal payments?
-
Yes. PayPal Checkout supports sandbox and live mode. You can also use pay on arrival / manual payment.
-
Is overnight (after midnight) supported?
-
Yes. On a working day, set Start Time and End Time across midnight. Example: 2:00 PM to 2:00 AM the next day. That range is treated as one continuous shift.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“BookWellNow – Appointment Booking” is open source software. The following people have contributed to this plugin.
Contributors“BookWellNow – Appointment Booking” has been translated into 1 locale. Thank you to the translators for their contributions.
Translate “BookWellNow – Appointment Booking” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
4.0.8
- Hardened JSON POST sanitization (sanitize immediately after decode) without changing stored settings on read.
4.0.7
- Improved JSON input sanitization so decoded data is sanitized before save and extensibility hooks.
4.0.5
- Updated plugin description to follow WordPress.org guidelines (clear usage instructions, no keyword stuffing).
4.0.4
- Fixed design issue.
4.0.3
- Added Admin Note row action on the Appointments list.
4.0.2
- Fixed Designing issue.
4.0.1
- Fixed blurry country flag icons on the booking form phone field (live/CDN environments).
- Replaced the intl-tel-input flag sprite with individual country flag images.
- Added
assets/css/iti-country-flags.cssand per-country PNGs underassets/img/flags/.
4.0.0
- Improved frontend booking form design on mobile and desktop.
- Staff Member step: two-column staff grid on mobile; single staff displays full width.
- Fixed booking form layout and staff card display issues.
3.0.9
- Added overnight staff shifts and special days (extended end/break times up to next day) with frontend +1 day slot labels.
- Added bulk select actions for appointments, services, staff, and customers.
- Dashboard Day Preview service filter now includes disabled services.
- Fixed booking form stretching too tall on large screens by capping form max height.
- Special/Holiday Days: disable End Date days before Start Date and validate end date on save.
- Special/Holiday Days: show Start/End dates using the Default Date Format from Settings General.
3.0.8
- Fixed RTL Issue.
3.0.7
- Designing bug fixed
3.0.6
- Added Full Width / Half Width setting for Form Fields (admin toolbar + frontend booking layout).
- Adds
bw_field_widthcolumn on form fields table for fresh installs and upgrades. - Added Week Starts On setting in Settings General (default: Monday) for booking and admin calendars.
- Styled settings helper/instruction text consistently
- Locked booking sidebar tabs after a successful booking confirmation.
- Updated translation template and language files.
3.0.3
- Improved Settings sidebar card navigation and Payment Gateways boxed layout.
- Debug log modal: scrollable log data, fixed header, and pagination footer.
- Zoom field notes moved to info-icon tooltips on service and staff drawers.
- Ensures Zoom database columns and Zoom settings, payment debug log table, and Email Notification Debug Log settings on fresh install and plugin update.
- Added free Zoom Meetings integration (Server-to-Server OAuth) under Settings Integrations.
- Enable Zoom per staff (assign Zoom user) and per service; meetings are created when appointments are booked.
- Start Zoom from admin appointments / calendar drawer; customers can Join Zoom from the customer panel.
- Email notification placeholders:
%zoom_join_url%,%zoom_host_url%. - Added Email Notification Debug Logs under Settings Debug Log (enable, view, download, clear).
3.0.1
- Added Service List with Popup booking form type (service grid + booking wizard popup).
- Added Booking Form Popup Button shortcode
[bookwell_booking_button]to open the same booking popup from any page (optionalservice_id,staff_id, andlabel). - Added Customized Form Options: hide service description and show staff designation.
- Form Type can be chosen in Settings Appearance and in Shortcode Generator (shared setting).
- Shortcode Generator: hide service filter when Service List with Popup is selected.
- Improved single-service catalog card width on desktop and mobile popup close button.
- Seeds appearance form options (
form_type,hide_description,show_staff_designation) on fresh install and plugin update.
3.0.0
- Added free customer panel with login, appointment history, account management, and customer appointment cancellation.
- Added Settings Customer Panel tab with configurable labels and optional WordPress user creation on booking.
- Improved frontend service list layout on tablet and mobile.
- Service images now generate and store a custom 250×250 medium size URL on upload/save.
- Updated translation template and language files for new strings.
2.0.9
- Service images now generate and store a custom 250×250 medium size URL on upload/save.
- Customer panel database migration: adds
bw_wp_user_idcolumn and index on the customers table, seeds default Customer Panel settings, and registers thebookwellnow-customerrole on fresh install and plugin update. - Customer panel uses the same dynamic booking form appearance colors, fonts, and button styling.
- Added Settings Customer Panel tab with “Create WordPress user upon appointment booking”.
- When enabled, bookings create a WordPress role user and link it to the customer record.
2.0.6
- Added Form Fields admin page to customize booking form customer details (phone, first name, last name, email, note, and terms & conditions) with required, label, placeholder, error message, hide/show, and drag-and-drop order.
- Added dedicated
wp_bookwellab_form_fieldsdatabase table with automatic migration from earlier settings storage and legacy Booking Form Labels. - Frontend Your Details step now uses saved form field settings for visibility, labels, placeholders, and validation.
- Removed duplicate customer field labels from Settings Booking Form Labels; use Form Fields for those settings instead.
- Fresh installs seed default form fields on activation; upgrades preserve customized labels from older versions.
2.0.5
- Fixed frontend booking notification emails to match the default appointment status (Approved or Pending), including after PayPal payment confirmation.
- Added public cancel appointment link placeholder (%cancel_appointment_link%) for customer notification emails with a guest-safe cancellation page.
2.0.4
- Added terms & conditions acceptance checkbox on the frontend booking Your Details step with customizable label text and link URL in Booking Form Labels.
- Fixed frontend phone field country flag and dropdown arrow display.
- Updated translation template and language files for new strings.
2.0.3
- Fixed design issues in the admin Add/Edit Appointment drawer (required field markers, label spacing, service dropdown width, customer search display, status and payment layout, and price summary placement).
- Added custom admin menu icon.
2.0.2
- Fixed Designing Issue
- Updated translation template and language files for new strings.
2.0.1
- Fixed default country and dial code storage so United States and Canada (+1) can be selected correctly.
- Added PayPal unsupported currency admin warning and frontend gateway hiding.
- Fixed setup wizard flash of uncompiled Vue templates on first load.
- Updated translation template and language files for new strings.
2.0.0
- Major release with PayPal Checkout, payment debug log, and manually payment method.
- Added 10 booking form appearance themes with live apply and frontend cache refresh.
- Improved PayPal currency validation, stale pending cleanup, and payment security hardening.
- Fixed default country vs dial code selection (US and Canada both use +1).
- Improved frontend staff data privacy and setup wizard load experience.
1.0.2
- Fixed slow Customers admin list loading with large customer counts by paginating customers first and fetching appointment stats only for the current page.
- Improved Appointments admin list pagination.
- Fixed design issues in the front-end booking form.
- Added Day Calendar option.
1.0.1
- Fixed Dashboard Day Preview segment positioning so appointment bars render at the correct timeline slot.
- Fixed Day Preview timeline range calculation to respect staff working hours (for example 9 AM to 5 PM no longer starts at 8 AM unless data requires it).
- Improved admin day preview time parsing to correctly handle 12-hour and 24-hour formats without reversing AM/PM placement.
- Spam-token storage moved to custom table with reusable DB helpers and safe upgrade cleanup.
1.0.0
- Initial public release.











