1 min read
From “customer hits Submit” to “post-booking review,” here’s every state a booking moves through.
The states #
- Pending — customer submitted; awaiting provider decision.
- Approved — provider confirmed. Reminder emails get queued.
- Rejected — provider declined. Customer is notified.
- Cancelled — customer or provider cancelled. Time slot frees up.
- Completed — the booking date passed and it wasn’t cancelled. Auto-completion runs on cron.
- No-show — manually set by the provider when a customer didn’t appear.
- Expired — auto-set when a Pending booking aged past its decision window without action.
What happens at each transition #
| Transition | Side effects |
|---|---|
| → Pending | new_booking email to provider + customer. Webhook booking.created fires (Pro). |
| → Approved | approved email. Reminder emails queued (24h, 1h before). Calendar sync runs (Pro). |
| → Rejected | rejected email. |
| → Cancelled | cancelled email. Reminders flushed. Webhook booking.cancelled fires (Pro). |
| → Completed | review_invite email queued. |
Auto-approval #
Enable Settings → General → Auto-approve to skip Pending. New bookings go straight to Approved if the slot is available. Useful for high-volume sites.
Auto-completion / auto-expiry #
- Approved bookings auto-complete after their end time passes (cron sweeps daily).
- Pending bookings auto-expire after the configured window (default 7 days).
Hooks fired #
Each transition fires a WordPress action: bookaro_booking_created, bookaro_booking_status_changed, bookaro_booking_cancelled, bookaro_booking_updated. See Reference → Hooks & filters.