This article contains PHP code and is intended for developers. We offer this code as a courtesy, but don't provide support for code customizations or 3rd party development.
This hook allows you to gray out specific times in a time field. It will only apply when there is a date field in the form and the 'Unique' option is enabled in the Time field.
Usage
add_filter('frm_allowed_times', 'change_my_business_hours', 10, 2);
Parameters
- $remove (array)
- $values (array)
Examples
Blackout Time Blocks
This example allows you to blackout certain times in a time field depending on the day of the week that is chosen the date field of the form.
add_filter('frm_allowed_times', 'change_my_business_hours', 10, 2);
function change_my_business_hours($remove, $values) {
if ( $values['time_field'] == 'field_mflcim') { //change to field key for your time field
$week_day = date('l', strtotime($values['date']));
$times_to_remove = array(
'Monday' => array('05:15 PM', '05:30 PM', '05:45 PM', '06:00 PM'), //continue until 07:00 PM
'Tuesday' => array('12:15 PM', '12:30 PM', '12:45 PM', '01:00 PM'), //continue until 07:00 PM
'Wednesday' => array('05:15 PM', '05:30 PM', '05:45 PM', '06:00 PM'), //continue until 07:00 PM
'Thursday' => array('08:00 AM', '08:15 AM'), //continue until 09:45 AM
);
if ( isset($times_to_remove[$week_day]) ) {
foreach ( $times_to_remove[$week_day] as $time ) {
$remove[$time] = $time;
}
}
}
return $remove;
}
Make sure your time field is set to show a single time dropdown in the time field options. If this doesn't work, try changing the times to remove the leading 0.