Require bookings to be at least 5 days ahead
Guests could previously book for the same day or tomorrow. The earliest selectable date is now today + 5 days, configured in one place via the BOOKING_MIN_LEAD_DAYS constant. - constants.php: new BOOKING_MIN_LEAD_DAYS define (5) - Service_model::getAvailableTimes(): optional $minLeadDays param, returns no slots for dates closer than that; defaults to 0 so existing callers are unaffected - Pages::ajax(): guest actions (getAvailableTimes, isTimeAvailable) pass the constant. The admin action getAvailableTimeOptions deliberately does not, so staff can still enter phone bookings for tomorrow. - Pages::booking_process(): rejects an early booking_date POST and redirects back to /booking, guarding against a stale page or a crafted request - booking-form.php: datepicker minDate/defaultDate and the hidden booking_date default all derive from the constant Deployed and verified on test, dev and prod. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MyYsTAAA1kJLMLCResmgTE
This commit is contained in:
co-authored by
Claude Opus 5
parent
4e1a69c8d4
commit
69ec9e62a6
@@ -787,7 +787,7 @@
|
||||
<div class="bookingResultsWrapper">
|
||||
<div class="availableTimesContainerTitle"></div>
|
||||
<div class="availableTimesContainer" style="padding:5px;">
|
||||
<input type="hidden" name="booking_date" id="booking_date" value="<?php echo date('Y-m-d');?>">
|
||||
<input type="hidden" name="booking_date" id="booking_date" value="<?php echo date('Y-m-d', strtotime('+'.BOOKING_MIN_LEAD_DAYS.' days'));?>">
|
||||
<input type="hidden" name="booking_start_time" id="booking_time" value="">
|
||||
|
||||
<div class="availableTimes">
|
||||
@@ -1122,7 +1122,8 @@
|
||||
|
||||
$("#datepicker").datepicker({
|
||||
firstDay: 1,
|
||||
defaultDate: new Date(),
|
||||
minDate: <?php echo intval(BOOKING_MIN_LEAD_DAYS);?>,
|
||||
defaultDate: +<?php echo intval(BOOKING_MIN_LEAD_DAYS);?>,
|
||||
dateFormat: 'yy-mm-dd',
|
||||
onSelect: function(dateText) {
|
||||
$('#booking_date').val(this.value);
|
||||
|
||||
Reference in New Issue
Block a user