Widget creates a booking (`wcphoto_booking`) as `pending_payment` and adds the mapped product to cart.
Checkout locks quantity to 1 and shows date/time meta plus link back to the booking page.
When the order status becomes `processing` or `completed`, the booking becomes `confirmed`.
If the order becomes `cancelled`, `refunded`, or `failed`, the booking becomes `cancelled`.
If no order attaches and hold time expires, cron marks the booking `expired`.