Skip to content

v1.4.8 — Display timezone fix + UI cleanup

Choose a tag to compare

@tom4cam tom4cam released this 02 May 12:42
· 66 commits to main since this release

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.