Consultant Booking
WordPress Plugin: A booking plugin that allows students to book consultation
by Abu Nesar · github.com/rmdabunesar/consultant-booking · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/rmdabunesar/consultant-booking/archive/refs/heads/main.zipA booking plugin that lets students schedule consultation sessions with scholarship advisors and pay online or in person.
Description
Consultant Booking makes it easy to manage scholarship consultants and accept appointment bookings directly from your WordPress site.
Consultants are registered as a custom post type with their own profile page. Students browse available consultants, pick a date and time that falls within the consultant's availability, and complete the booking — either paying cash on arrival or online via Stripe.
After a successful booking, the student automatically receives a confirmation email with a PDF invoice attached.
Key Features
- Consultant profiles — Add photo, designation/specialty, phone, email, social media links, and weekly availability windows.
- Availability enforcement — Bookings are rejected if the requested slot falls outside the consultant's configured working hours or on a non-working day.
- Overlap prevention — The plugin checks for existing bookings before confirming a new one, so the same consultant cannot be double-booked.
- Online payment via Stripe — Redirect students to a hosted Stripe Checkout page; a success and cancel page are configurable from the settings screen.
- Cash on visit — Students can choose to pay in person, with no payment gateway required.
- PDF invoice by email — Every confirmed booking triggers an automatic email to the student with a PDF invoice generated by Dompdf.
- React settings panel — A React-powered admin screen lets you configure general options, slot duration, working days, currency, Stripe keys, and page mappings in one place.
- Shortcodes — Place the consultant listing and booking form anywhere with simple shortcodes.
- Consultant search widget — A sidebar widget provides live AJAX search across all consultant profiles.
- Translation-ready — Fully internationalised with a
.potfile included.
Installation
Automatic installation
- In your WordPress admin, go to Plugins → Add New.
- Search for Consultant Booking.
- Click Install Now, then Activate.
Manual installation
- Download the plugin zip file.
- Upload the
consultant-bookingfolder to/wp-content/plugins/. - In your WordPress admin, go to Plugins and activate Consultant Booking.
After activation
- Navigate to Appointment → Settings and complete the configuration (currency, slot duration, Stripe keys, page assignments).
- Create the following pages and assign them in Settings:
- Booking page — add the
[cb_booking_form]shortcode. - Payment Success page — add the
[cb_booking_success]shortcode. - Payment Cancel page — add the
[cb_booking_cancel]shortcode.
- Booking page — add the
- Add consultants via Appointment → Consultants → Add New.
- Place
[cb_consultants]on any page to display the consultant listing.
Requirements
- PHP 8.0 or higher
- Composer dependencies installed (
composer install --no-devin the plugin directory) - A Stripe account for online payments (optional — cash on visit works without it)
Frequently Asked Questions
How do I display the list of consultants?
Use the [cb_consultants] shortcode on any page or post. You can optionally pass specific IDs: [cb_consultants ids="12,34,56"].
How does the booking form know which consultant to show?
The booking form reads a consultant_id URL parameter. When a student clicks the booking button on a consultant's profile page, the link includes this parameter automatically.
Can I override the plugin templates from my theme?
Yes. Copy any template from wp-content/plugins/consultant-booking/templates/ into a consultant-booking/ subfolder inside your active theme. The plugin checks your theme folder first.
What happens if Composer dependencies are missing?
An admin notice will appear asking you to run composer install in the plugin directory. The plugin will not load until dependencies are present.
Is Stripe required?
No. If you only want cash on visit bookings, you can leave the Stripe keys blank in the settings. The online payment option will still appear in the form, but a Stripe session will only be created when it is selected.
Does the plugin support multiple bookings at the same time slot?
Not by default — one booking per slot per consultant is enforced. The Max Bookings Per Slot setting in the admin panel is available for future use.
Where are the generated invoice PDFs stored?
They are written to /wp-content/uploads/cb-invoice/ temporarily and deleted from disk immediately after the email is sent.
Shortcodes
[cb_consultants]
Displays the consultant listing with a Load More button.
Attributes:
ids(optional) — Comma-separated list of consultant post IDs to display. Displays all consultants if omitted.
Example:
[cb_consultants ids="10,22,37"]
[cb_booking_form]
Displays the appointment booking form. Best placed on a dedicated booking page.
The consultant is determined by the consultant_id URL parameter appended by the consultant profile page link.
[cb_booking_success]
Displays a payment success message after a completed Stripe Checkout session. Place on the page configured as the Payment Success Page in settings.
[cb_booking_cancel]
Displays a cancellation message when a student returns from an abandoned Stripe Checkout. Place on the page configured as the Payment Cancel Page in settings.
Screenshots
- The consultant listing page showing profile cards with contact info and social links.
- The booking form with consultant details and payment method selector.
- The React-powered admin settings panel.
- The booking list in the WordPress admin with custom columns.
- The consultant edit screen showing the availability and social media repeater fields.
Changelog
1.0.0
- Initial release.
- Consultant custom post type with designation, social links, and weekly availability.
- Booking custom post type with overlap detection and availability validation.
- Stripe Checkout integration for online payments.
- 2Checkout (Verifone) payment processing foundation.
- PDF invoice generation via Dompdf and automatic email delivery.
- React admin settings panel with REST API backend.
[cb_consultants],[cb_booking_form],[cb_booking_success],[cb_booking_cancel]shortcodes.- Consultant search sidebar widget with live AJAX results.
- Translation-ready with
.potfile included.
Upgrade Notice
1.0.0
Initial release — no upgrade steps required.
Third-Party Libraries
This plugin includes or depends on the following third-party libraries:
- Stripe PHP SDK (stripe/stripe-php) — MIT License — https://github.com/stripe/stripe-php
- Dompdf (dompdf/dompdf) — LGPL-2.1 License — https://github.com/dompdf/dompdf
- Font Awesome (CDN) — Font Awesome Free License — https://fontawesome.com/license/free
- 2Checkout Order API — Used for alternative payment processing — https://developer.verifone.com