Repository navigation
v1.4.8 — Display timezone fix + UI cleanup
Fixes a timezone display bug + small UI cleanup
Display times were wrong (Bookings tab, emails, SMS)
A 6:00 PM booking was rendering as 12:00 PM in the Bookings table and in confirmation/reminder emails. Modern WordPress sets PHP's default timezone to UTC, so a bare `strtotime('2026-05-15 18:00:00')` returned the timestamp for 6pm UTC. Then `wp_date()` shifted that timestamp into the site timezone, double-shifting and producing the wrong wall-clock time.
The fix: a new `caswell_local_ts()` helper that parses DB datetimes as site-local wall-clock and returns the correct UTC Unix timestamp. Every spot that displays a stored datetime (bookings table, all email and SMS templates, account page, admin reschedule modal, etc.) now goes through it.
The Google Calendar event write path was already correct — it uses `DateTime` with an explicit timezone — so the events on Ryan's calendar already had the right time. Only display was affected.
Two confirmation emails when testing
The plugin sends a separate "[New Booking]" alert to the admin email so Ryan knows when bookings come in. When the admin email is the same as the client email (e.g. when Ryan tests by booking with his own email), he was getting both. Now skipped when the two addresses match — production unaffected since admin and client are different in real bookings.
DST ±1h shift buttons removed from Bookings tab
The reschedule modal already covers the same need (just edit the time directly), and the timezone fix above means DST shouldn't surprise the displayed times in the first place. The buttons added more visual noise than value.
Install
WP Admin → Plugins → Add New → Upload Plugin → `caswell-booking-1.4.8.zip` → Replace.
After upgrading, glance at the Bookings tab to confirm times look correct. Existing bookings haven't changed in the database — only the display layer.