';
}
if($i % 7 == 0 OR $i == ($maxday+$startday-1)) { // Closing row if week is over or last day of month has been reached.
$calSingleOutput .= '
';
}
$cTime += 86400;
}
$calSingleOutput .= abc_booking_setPageview('single-calendar/'.sanitize_title_with_dashes($calendarName).'/'.date_i18n('Y-m', $timestamp)); // Google Analytics Tracking
return $calSingleOutput;
}
function ajax_abc_booking_getSingleCalendar() {
if(!isset( $_POST['abc_nonce'] ) || !wp_verify_nonce($_POST['abc_nonce'], 'abc-nonce') )
die('Permissions check failed!');
if(!isset($_POST['month'])){
echo 'Month not set.';
} else {
echo abc_booking_getSingleCalendar($_POST);
}
die();
}
add_action('wp_ajax_abc_booking_getSingleCalendar', 'ajax_abc_booking_getSingleCalendar');
add_action( 'wp_ajax_nopriv_abc_booking_getSingleCalendar', 'ajax_abc_booking_getSingleCalendar');
// Called by jQuery, when user clicks on available dates.
function ajax_abc_booking_setDataRange() {
$output = '';
$success = false; // Triggers Google Analytics Tracking, if user selected a date range
if(!isset( $_POST['abc_nonce'] ) || !wp_verify_nonce($_POST['abc_nonce'], 'abc-nonce') )
die('Permissions check failed!');
if(!isset($_POST['start']) OR !isset($_POST['end'])){
$output = 'Dates not set.';
} else {
$start = strtotime(sanitize_text_field($_POST['start']));
$end = strtotime(sanitize_text_field($_POST['end']));
$calendarId = sanitize_text_field($_POST['calendar']);
$dateformat = getAbcSetting('dateformat');
$currency = getAbcSetting('currency');
if($start != 0){
$output .= '
'.__('Checkin', 'advanced-booking-calendar').': '.date($dateformat, $start).' '.__('Checkout', 'advanced-booking-calendar').': ';
if($end != 0 && $end > $start){
$success = true;
$output .= date($dateformat, $end);
$numberOfDays = abc_booking_dateDiffInDays($end, $start);
$output .= ' '.__('Total price', 'advanced-booking-calendar').':
'.abc_booking_formatPrice(abc_booking_getTotalPrice($calendarId, date("Y-m-d", $start), $numberOfDays));
$minimumStay = abc_booking_checkMinimumStay($calendarId, sanitize_text_field($_POST['start']), sanitize_text_field($_POST['end']));
if($minimumStay > 0){ // Checking if the minimum number of nights to stay is reached
$output .= '
'.sprintf( __('Your stay is too short. Minimum stay for those dates is %d nights.', 'advanced-booking-calendar'), $minimumStay ).'';
}elseif(getAbcSetting("bookingpage") > 0){ // Checking if bookingpage in the settings has been defined
$output .='
';
} else {
$output .= '-';
}
$output .= '
';
}
}
if($success){
global $wpdb;
$er = $wpdb->get_row('SELECT * FROM '.$wpdb->prefix.'advanced_booking_calendar_calendars WHERE id = '.$calendarId, ARRAY_A);
$calendarName = esc_html($er["name"]);
$output .= abc_booking_setPageview('single-calendar/'.sanitize_title_with_dashes($calendarName).'/date-selected'); // Google Analytics Tracking
}
echo $output;
die();
}
add_action('wp_ajax_abc_booking_setDataRange', 'ajax_abc_booking_setDataRange');
add_action( 'wp_ajax_nopriv_abc_booking_setDataRange', 'ajax_abc_booking_setDataRange');
?>