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
@@ -342,7 +342,7 @@ class Service_model extends CI_Model {
|
||||
}
|
||||
}
|
||||
|
||||
public function getAvailableTimes($group_id, $selectedDate, $servicelength){
|
||||
public function getAvailableTimes($group_id, $selectedDate, $servicelength, $minLeadDays = 0){
|
||||
$this->load->database();
|
||||
$serviceLengthDateTime = new DateTime($selectedDate.' '.$servicelength);
|
||||
$service_length_time = strtotime($servicelength);
|
||||
@@ -366,6 +366,12 @@ class Service_model extends CI_Model {
|
||||
$selectedDay=date_create($selectedDate);
|
||||
$dateDiff=date_diff($today,$selectedDay);
|
||||
|
||||
//minimum booking lead time - no times offered before today + $minLeadDays days.
|
||||
//$minLeadDays = 0 means no restriction (admin portal).
|
||||
if($minLeadDays > 0 && intval($dateDiff->format('%R%a')) < $minLeadDays){
|
||||
return array();
|
||||
}
|
||||
|
||||
$tmpDateStart = date_create(date('2024-02-29'));
|
||||
$tmpDateEnd = date_create(date('2024-03-07'));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user