New';
endif;
return false;
}
function booked_timeslots_select( $appt_id = false, $year, $month, $day = false ){
if ( !$appt_id )
return;
// Caledar ID
$calendars = get_the_terms( $appt_id, 'booked_custom_calendars' );
if ( !empty($calendars) ):
foreach( $calendars as $calendar ):
$calendar_id = $calendar->term_id;
endforeach;
else:
$calendar_id = false;
endif;
// Timeslot Information
$time_format = get_option('time_format');
$timeslot = get_post_meta($appt_id, '_appointment_timeslot',true);
$timeslots = explode('-',$timeslot);
$time_start = date_i18n($time_format,strtotime($timeslots[0]));
$time_end = date_i18n($time_format,strtotime($timeslots[1]));
if ($timeslots[0] == '0000' && $timeslots[1] == '2400'):
$timeslotText = esc_html__('All day','booked');
else :
$timeslotText = $time_start.' '.esc_html__('to','booked').' '.$time_end;
endif;
$time_format = get_option('time_format');
$full_date = $year . '-' . $month . ( $day ? '-' . $day : '' );
$available_timeslots_array = booked_appointments_available( $year, $month, $day, $calendar_id, true, true );
$available_timeslots_array = ( isset( $available_timeslots_array[$full_date] ) ? $available_timeslots_array[$full_date] : array() );
echo '';
}
function booked_parse_readme_changelog( $readme_url = false, $title = false ){
$readme = ( !$readme_url ? file_get_contents( BOOKED_PLUGIN_DIR . '/readme.txt') : file_get_contents( $readme_url ) );
$readme = make_clickable(esc_html($readme));
$readme = preg_replace('/`(.*?)`/', '\\1', $readme);
$readme = preg_replace( '/[\040]\*\*\NEW:\*\*/', '' . esc_html__( 'New', 'booked' ) . '', $readme);
$readme = preg_replace( '/[\040]\*\*\TWEAK:\*\*/', '' . esc_html__( 'Tweak', 'booked' ) . '', $readme);
$readme = preg_replace( '/[\040]\*\*\FIX:\*\*/', '' . esc_html__( 'Fixed', 'booked' ) . '', $readme);
$readme = preg_replace( '/[\040]\*\*\NEW\*\*/', '' . esc_html__( 'New', 'booked' ) . '', $readme);
$readme = preg_replace( '/[\040]\*\*\TWEAK\*\*/', '' . esc_html__( 'Tweak', 'booked' ) . '', $readme);
$readme = preg_replace( '/[\040]\*\*\FIX\*\*/', '' . esc_html__( 'Fixed', 'booked' ) . '', $readme);
$readme = preg_replace( '/\*\*(.*?)\*\*/', '\\1', $readme);
$readme = preg_replace( '/\*(.*?)\*/', '\\1', $readme);
$readme = explode( '== Changelog ==', $readme );
$readme = explode( '== Upgrade Notice ==', $readme[1] );
$readme = $readme[0];
$whats_new_title = '
' . ( $title ? esc_html( $title ) : apply_filters( 'booked_whats_new_title', esc_html__( "What's new?", "booked" ) ) ) . '
';
$readme = preg_replace('/= (.*?) =/', $whats_new_title, $readme);
$readme = preg_replace("/\*+(.*)?/i","",$readme);
$readme = preg_replace("/(\<\/ul\>\n(.*)\*)+/","",$readme);
$readme = explode( $whats_new_title, $readme );
$readme = $whats_new_title . $readme[1];
return $readme;
}
function booked_render_single_timeslot_form($timeslot_intervals,$type = false){
ob_start();
echo '
';
$html = ob_get_clean();
return $html;
}
function booked_render_bulk_timeslot_form($timeslot_intervals,$type = false){
ob_start();
echo '';
$html = ob_get_clean();
return $html;
}
function booked_render_time_select($select_name,$interval,$placeholder,$single = false){
$time = 0;
$interval = max(1, $interval);
$time_format = get_option('time_format');
$html = '';
return apply_filters( 'booked_time_select_field', $html );
}
function booked_render_text_field($field_name,$placeholder){
$html = '';
return apply_filters( 'booked_text_field', $html );
}
function booked_render_timeslots($calendar_id = false){
if ($calendar_id):
$booked_defaults = get_option('booked_defaults_'.$calendar_id);
else :
$booked_defaults = get_option('booked_defaults');
endif;
$time_format = get_option('time_format');
$first_day_of_week = (get_option('start_of_week') == 0 ? 7 : 1);
$day_loop = array(
date_i18n( 'l', strtotime('Sunday') ),
date_i18n( 'l', strtotime('Monday') ),
date_i18n( 'l', strtotime('Tuesday') ),
date_i18n( 'l', strtotime('Wednesday') ),
date_i18n( 'l', strtotime('Thursday') ),
date_i18n( 'l', strtotime('Friday') ),
date_i18n( 'l', strtotime('Saturday') )
);
// Need to use the english three-letter day names to save settings properly
$day_loop_english_array = array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
if ($first_day_of_week == 1):
$sunday_item = array_shift($day_loop); $day_loop[] = $sunday_item;
$sunday_item_array = array_shift($day_loop_english_array); $day_loop_english_array[] = $sunday_item_array;
endif;
?>>
$day): ?>
';
echo '' . $day . ' ';
echo ''.esc_html__('Clear','booked').'';
echo ''.esc_html__('Add Timeslots','booked').'';
echo '';
?>
|
';
if (!empty($booked_defaults[$day_loop_english_array[$key]])):
ksort($booked_defaults[$day_loop_english_array[$key]]);
foreach($booked_defaults[$day_loop_english_array[$key]] as $time => $count):
echo booked_render_timeslot_info($time_format,$day_loop_english_array[$key],$time,$count,$calendar_id,$booked_defaults);
endforeach;
else :
echo ''.esc_html__('No time slots.','booked').' ';
endif;
echo ''; ?>
|
';
$time = explode('-',$time);
do_action( 'booked_single_timeslot_start', $day, $time, $calendar_id );
if ($time[0] == '0000' && $time[1] == '2400'):
$timeslotText = '' . strtoupper( esc_html__( 'All day', 'booked') ) . '';
else :
$timeslotText = '' . date_i18n( $time_format, strtotime( '2014-01-01 ' . $time[0] ) ) . ' – '.date_i18n($time_format,strtotime('2014-01-01 '.$time[1])).'';
endif;
echo $timeslotText;
echo '';
echo '';
echo ''.$count.' '._n('Space Available','Spaces Available',$count,'booked').'';
echo '';
echo '';
if ( $title ) {
echo ''.esc_html($title).'';
}
echo '';
do_action( 'booked_single_timeslot_end', $day, $time, $calendar_id );
echo '';
return ob_get_clean();
}
function booked_render_interval_select($select_name,$placeholder){
ob_start();
echo '