Repository navigation
v1.4.3 — Booking management, self-service reschedule, opt-in calendars
Highlights
Admin Bookings tab
- Reschedule / Cancel / Notes / DST shift actions on every booking row — updates Google Calendar in place, emails/texts the client.
- + New booking button to schedule a client manually (e.g. phone-in or walk-in). Fires the same email + SMS the self-service flow uses.
- Permanent delete (separate from cancel — for cleaning up old/test rows).
- Mobile card layout — the Bookings table collapses to stacked cards on phones so action buttons are always reachable.
Self-service for clients
- One-click Reschedule and Cancel links in confirmation emails + SMS, signed with a per-booking HMAC token.
- Reschedule link → booking page enters "reschedule mode" with a banner; submitting cancels the original automatically. Original payment carries over.
- Cancel link → confirmation page with 24h no-refund policy notice (and a sharper warning when the appointment is < 24h out).
- New opt-in consent text below the Book button explaining email/text notifications + the cancellation policy.
Google Calendar
- Personal calendar writes are now opt-in (default off) — Settings → Google Calendar → "Also create event on personal calendar".
- Independent event titles for shared vs. personal calendars. New
{client_first}placeholder. Default shared-calendar title:{practitioner}: {client_first}(e.g. "Ryan: Jane"). - "Terry" blocking events on the shared calendar block availability, padded by
buffer_timeon each side, so new appointments can't be booked right up against another practitioner's session. - Shared-calendar write-test diagnostic in Tools tab — verifies the OAuth user has "Make changes to events" permission.
Email / SMS
- Confirmation message accuracy: no longer claims an SMS was sent when Twilio isn't configured.
email_sentflag surfaced to the front-end so a wp_mail failure is shown to the client immediately.- Email Delivery Test diagnostic in Tools tab (helpful for Bluehost-style silent-drop scenarios — fix is usually WP Mail SMTP).
- Better debug-log entries for every wp_mail outcome.
Bug fixes
- Booking form no longer autofills with admin contact info when an admin is logged in.
- Mobile date field width capped + 16px font (no more iOS Safari auto-zoom).
- Auth AJAX handlers now register for both
wp_ajax_*andwp_ajax_nopriv_*(registration was failing with "Network error" for logged-in users). - Reschedule/notes/cancel modals moved outside the settings form (nested
<form>tags are invalid HTML and were causing button clicks to submit the outer form).
Install / upgrade
WP Admin → Plugins → Add New → Upload Plugin → choose caswell-booking-1.4.3.zip → Replace current with uploaded → Activate.
No DB migration is required.
After upgrade:
- Visit Settings → Caswell Booking → Tools & Diagnostics → run Email Delivery Test and Shared Calendar — Write Test.
- Confirm Settings → Google Calendar → "Also create event on personal calendar" matches your preference (default off).
- Send yourself a test booking via "+ New booking" to verify the full notification path end-to-end.