Skip to content

v1.4.3 — Booking management, self-service reschedule, opt-in calendars

Choose a tag to compare

@tom4cam tom4cam released this 02 May 00:59
· 71 commits to main since this release

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_time on 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_sent flag 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_* and wp_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:

  1. Visit Settings → Caswell Booking → Tools & Diagnostics → run Email Delivery Test and Shared Calendar — Write Test.
  2. Confirm Settings → Google Calendar → "Also create event on personal calendar" matches your preference (default off).
  3. Send yourself a test booking via "+ New booking" to verify the full notification path end-to-end.