<?php
$VRCalendarSettings = VRCalendarSettings::getInstance();
$VRCalendarEntity = VRCalendarEntity::getInstance();
$calid = 0;
if(isset($_GET['cal_id'])){
$calid = $_GET['cal_id'];
}
$cal_data = $VRCalendarEntity->getCalendar( $calid );
$getAllCalendar = $VRCalendarEntity->getAllCalendar();
if(empty($cal_data->calendar_id) && $_GET["page"] == 'vr-calendar-mycalendar' && ($VRCalendarSettings->getSettings('licensekey_active')) && $gbversiontype != "pro-envato"){
?>
<div class="mouse">
<?php
echo esc_html( __('Calendar id does not exist! Please Select your Calendar below.', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
?>
</div><br/>
<?php
}
if($_GET["page"] == 'vr-calendar-mycalendar' && ($VRCalendarSettings->getSettings('licensekey_active') && $gbversiontype != "pro-envato")){
?>
<select style="margin-bottom: 15px;" class="select_calendar">
<option>Select Calendar</option>
<?php
foreach($getAllCalendar as $d_cal){
?>
<option value="<?=$d_cal->calendar_id;?>" <?=(!empty($_GET["cal_id"]) && $_GET["cal_id"] == $d_cal->calendar_id) ? "selected":"";?>><?=$d_cal->calendar_name;?></option>
<?php
}
?>
</select>
<script>
jQuery(".select_calendar").on("change", function(){
var cal_id = jQuery(this).val();
location.href = 'admin.php?page=vr-calendar-mycalendar&cal_id='+cal_id;
});
</script>
<?php
}
if($VRCalendarSettings->getSettings('licensekey_active') && $gbversiontype != "pro-envato"){
$next_month=0;
$booking_checkin_date = date("Y-m-d");
$booking_checkout_date = date('Y-m-d', strtotime('+1 day', strtotime($booking_checkin_date)));
$getdisplay_month_data = $VRCalendarEntity->getCalendar($calid);
$next_data = date('Y-m-d', mktime(0, 0, 0, date('m')+$next_month, 1, date('Y')));
$month = date('n', strtotime($next_data));
$year = date('Y', strtotime($next_data));
$current_month = date('Y-m-d', strtotime("{$year}-{$month}-1"));
$month_year_name = '';
if(empty($getdisplay_month_data->calendar_display_num_months)){
$number_months = 12;
}else{
$number_months = $getdisplay_month_data->calendar_display_num_months;
}
$month_year_name .= '<select id="select_month" class="btn-select_month-single-'.$calid.'">';
for ($count_cal = 0; $count_cal <= $number_months; $count_cal++) {
$dates = date('F Y', strtotime($current_month.' + '.$count_cal.' Months'));
$month_year_name .= '<option value="'.($count_cal+1).'">'.$dates.'</option>';
}
$month_year_name .= '</select>';
$num_months = $number_months;
$siteurl = site_url().'/wp-admin/admin-ajax.php';
$dir = VRCALENDAR_PLUGIN_URL;
if(!empty($cal_data->calendar_price_exception)){
foreach ($cal_data->calendar_price_exception as $gustKey=>$gustValue) {
$startDate = new DateTime($gustValue->start_date);
$endDate = new DateTime($gustValue->end_date);
$formatCheckingDate = new DateTime($booking_checkin_date);
$checkInYearStart = $formatCheckingDate->format('Y');
$checkInMonthStart = $formatCheckingDate->format('m');
$checkInDateStart = $formatCheckingDate->format('d');
$formatCheckoutDate = new DateTime($booking_checkout_date);
$checkoutYearEnd = $formatCheckoutDate->format('Y');
$checkoutMonthEnd = $formatCheckoutDate->format('m');
$checkoutDateEnd = $formatCheckoutDate->format('d');
$checkoutDateEnd = $checkoutDateEnd - 1;
$seasonal_guest_max = $gustValue->seasonal_gustno_pricing;
$seasonal_child_max = $gustValue->seasonal_childno_pricing;
$count = 0;
for ($seasonaldate = $startDate; $seasonaldate <= $endDate; $seasonaldate->modify('+1 day')) {
$seasonStartYear = $startDate->format('Y');
$seasonStartMonth = $startDate->format('m');
$seasonStartDate = $startDate->format('d');
$seasonEndYear = $endDate->format('Y');
$seasonEndMonth = $endDate->format('m');
$seasonEndDate = $endDate->format('d');
$changingDate = $seasonaldate->format('d');
$changingMonth = $seasonaldate->format('m');
if ($seasonStartYear == $checkInYearStart || $checkoutYearEnd == $seasonStartYear || $checkInYearStart == $seasonEndYear || $checkoutYearEnd == $seasonEndYear) {
if ($checkInMonthStart == $seasonStartMonth || $checkoutMonthEnd == $seasonEndMonth || $checkInMonthStart == $seasonEndMonth || $checkoutMonthEnd == $seasonEndMonth) {
if ($checkInDateStart >= $seasonStartDate || $checkInDateStart <= $seasonEndDate || $checkoutDateEnd <= $seasonStartDate || $checkoutDateEnd >= $seasonEndDate) {
if ($checkoutDateEnd < $changingDate && $checkoutMonthEnd == $changingMonth) {
break;
} else if ($checkInDateStart > $seasonStartDate && $checkInMonthStart == $seasonStartMonth) {
} else {
$count = $count + 1;
$seasonaldaysname = $seasonaldate->format('l');
$seasonalGust = $seasonal_guest_max;
$seasonalChild = $seasonal_child_max;
}
}
}
}
}
}
}
if(!empty($seasonalGust)){
$maxGuestNo = $seasonalGust;
}else {
$maxGuestNo = @$cal_data->calendar_max_guest_no;
}
if(!empty($seasonalChild)){
$maxChildNo = $seasonalChild;
}else {
$maxChildNo = @$cal_data->calendar_max_child_no;
}
$fee_extra = @json_decode($cal_data->extra_fees_section);
$pro_one_day_book = @$cal_data->pro_one_day_book;
$hourly_booking = @$cal_data->hourly_booking;
$minimum_number_of_night = @$cal_data->minimum_number_of_night;
$number_of_night = @$cal_data->number_of_night;
$booking_form_text = 'Request to Book';
if(@$cal_data->booking_form_text != ''){
$booking_form_text = $cal_data->booking_form_text;
}
$calendar_tax_per_stay = @trim($cal_data->calendar_tax_per_stay);
$calendar_tax_type = @trim($cal_data->calendar_tax_type);
//style of left and right moves
$VRCalendarSettings = VRCalendarSettings::getInstance();
$dateformat = $VRCalendarSettings->getSettings('dateformat');
$field_name_yes = @$cal_data->custom_field;
//$field_name = esc_html( __(@$cal_data->custom_field_name, VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$custom_field_name = "";
if($field_name_yes == "yes"){
$count_field = 0;
$custom_field_data = json_decode($cal_data->custom_field_name);
$count_field = count((array) $custom_field_data);
if($count_field > 1){
$col_field = "col-sm-6";
}else{
$col_field = "col-sm-12";
}
foreach($custom_field_data as $fieldval){
$required_field = ($fieldval->field_required == 'yes') ? 'required' : '';
$custom_field_name .= '<div class="'.$col_field.'">
<div class="form-group">
<label for="custom_field_name">'. esc_html( __($fieldval->field_name, VRCALENDAR_PLUGIN_TEXT_DOMAIN) ) .'</label>
<input type="text" class="form-control '. $required_field .'" placeholder="'. $fieldval->field_placeholder .'" name="custom_field[' . $fieldval->field_name . ']" id="custom_field_name">
</div>
</div>';
}
}else{
$custom_field_name = '';
}
$calendar_enable_csc = @$cal_data->calendar_enable_csc;
if($calendar_enable_csc == "yes"){
$city = esc_html( __('City', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$state = esc_html( __('State', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$country = esc_html( __('Country', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$yes_city = $cal_data->calendar_enable_city;
$yes_state = $cal_data->calendar_enable_state;
$yes_country = $cal_data->calendar_enable_country;
if($yes_city == "yes"){
if($yes_state == "yes" || $yes_country == "yes"){
$col_city = "col-sm-6";
}else{
$col_city = "col-sm-12";
}
$enable_city = '
<div class="'.$col_city.'">
<div class="form-group">
<label for="calendar_enable_city">'.$city.'</label>
<input type="text" class="form-control" value="" name="calendar_enable_city" id="calendar_enable_city" placeholder="'.$city.'" />
</div>
</div>';
}
if($yes_state == "yes"){
if($yes_city == "yes" || $yes_country == "yes"){
$col_state = "col-sm-6";
}else{
$col_state = "col-sm-12";
}
$enable_state = '
<div class="'.$col_state.'">
<div class="form-group">
<label for="calendar_enable_state">'.$state.'</label>
<input type="text" class="form-control" value="" name="calendar_enable_state" id="calendar_enable_state" placeholder="'.$state.'" />
</div>
</div>';
}
if($yes_country == "yes"){
if($yes_city == "yes" && $yes_state == "yes"){
$col_country = "col-sm-12";
}else{
$col_country = "col-sm-6";
}
$enable_country = '
<div class="'.$col_country.'">
<div class="form-group">
<label for="calendar_enable_country">'.$country.'</label>
<input type="text" class="form-control" value="" name="calendar_enable_country" id="calendar_enable_country" placeholder="'.$country.'" />
</div>
</div>';
}
}
$CheckIn = esc_html( __('Check In', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$CheckOut = esc_html( __('Check Out', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$Guests = esc_html( __('Adult', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
if(@$cal_data->calendar_tax_charge == "yes"){
$Child = 'Children Below '.$cal_data->calendar_tax_charge_label.' Years old';
}else{
$Child = esc_html( __('Children', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
}
$Taxes = esc_html( __('Taxes', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$Taxes_per_person = esc_html( __('Tax Adult per Day', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
// $Child = esc_html( __('Children', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$FirstName = esc_html( __('First Name', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$LastName = esc_html( __('Last Name', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$Email_booking = esc_html( __('Email', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$PhoneNumber = esc_html( __('Phone Number', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$NoteToHost = esc_html( __('Note To Host', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$zero_value = esc_html( __('0', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$ExtraGuestFees = esc_html( __('Extra Adult Fee', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$ExtraChildFees = esc_html( __('Extra Children Fee', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
//$CleaningFee = esc_html( __('Cleaning Fee', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
// $Taxes = esc_html( __('Taxes', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
//$ExtraFees = esc_html( __('Extra Fees', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$TotalReservationAmount = esc_html( __('Total Reservation Amount', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$RequesttoBook = esc_html( __($booking_form_text, VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$CheckInDate = esc_html( __('Check In Date', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$CheckOutDate = esc_html( __('Check Out Date', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$remove_x = esc_html( __('x', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$zero_days = esc_html( __('0', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$clear_dates = esc_html( __('Clear Dates', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$read_agree = esc_html( __(' I have read and agree to the', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$rental_agreement = esc_html( __('rental agreement', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$save_copy = esc_html( __('and saved a copy for my reference', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$url = VRCALENDAR_PLUGIN_URL;
if(@$cal_data->calendar_custom_field_name != ''){
$ExtraFees = esc_html( __($cal_data->calendar_custom_field_name, VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
}else{
$ExtraFees = esc_html( __('Extra Fees', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
}
$show_booking_from_one_page = @$cal_data->show_booking_from_one_page;
$booking_form_location_style = '';
$booking_form_location_style .= '<style> .spanhide{display:none;} </style>';
$nbsptext = '';
$div_vrc_calendar_wrapper_open = '';
$div_vrc_calendar_wrapper_close = '';
if($show_booking_from_one_page == 'yes')
{
if($cal_data->booking_form_location == 'next_to_call')
{
$nbsptext = ' ';
$div_vrc_calendar_wrapper_open = '<div class="vrc-calendar-wrapper vrc-layout-inline">';
$div_vrc_calendar_wrapper_close = '</div>';
}
}
$booking_powered_style = '';
$checkerDay = esc_html( __('Per Night', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$check_in_time = '';
$check_out_time = '';
$valid_hourly_booking = 0;
$dayNight = esc_html( __('Night', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
if($pro_one_day_book == 'yes')
{
$checkerDay = esc_html( __('Per Day', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$dayNight = esc_html( __('day', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
}
if($hourly_booking == 'yes')
{
$booking_powered_style = 'style="width:100%; float:left;"';
$valid_hourly_booking = 1;
$check_in_time .= '<div class="col-sm-6">
<div class="form-group">
<label for="booking_checkin_intime">'.esc_html( __('Check In Time', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ).'</label>
<select name="checkintime" id="checkintime" class="form-control required" onchange="timeChange(this.value)">
</select>
</div>
</div>';
$check_out_time .= '<div class="col-sm-6">
<div class="form-group">
<label for="checkouttime">'.esc_html( __('Check Out Time', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ).'</label>
<select name="checkouttime" id="checkouttime" class="form-control required">
</select>
</div>
</div>';
$check_in_time .= "<script>
function firstDatetimeChange(inDate)
{
var timeArray = {'0' : '12:00am', '1' : '1:00am', '2' : '2:00am', '3' : '3:00am', '4' : '4:00am', '5' : '5:00am', '6' : '6:00am', '7' : '7:00am', '8' : '8:00am', '9' : '9:00am', '10' : '10:00am', '11' : '11:00am', '12' : '12:00pm', '13' : '1:00pm', '14' : '2:00pm','15' : '3:00pm', '16' : '4:00pm', '17' : '5:00pm', '18' : '6:00pm', '19' : '7:00pm', '20' : '8:00pm', '21' : '9:00pm', '22' : '10:00pm', '23' : '11:00pm'};
var timeKeysget = {'0' : '00:00:00', '1' : '01:00:00', '2' : '02:00:00', '3' : '03:00:00', '4' : '04:00:00', '5' : '05:00:00', '6' : '06:00:00', '7' : '07:00:00', '8' : '08:00:00', '9' : '09:00:00', '10' : '10:00:00', '11' : '11:00:00', '12' : '12:00:00', '13' : '13:00:00', '14' : '14:00:00','15' : '15:00:00', '16' : '16:00:00', '17' : '17:00:00', '18' : '18:00:00', '19' : '19:00:00', '20' : '20:00:00', '21' : '21:00:00', '22' : '22:00:00', '23' : '23:00:00'};
var optionInValues = '';
var calendar_id = jQuery('#cal_id').val();
var data = {
'action': 'get_updated_checkindate',
'cal_id': calendar_id,
'inDate': inDate,
};
jQuery.post(vrc_data.ajax_url, data, function(response) {
var obj = jQuery.parseJSON( response );
jQuery.each(obj, function(key, value) {
optionInValues += '<option value='+timeKeysget[key]+'>'+timeArray[key]+'</option>';
});
jQuery('#checkintime').html(optionInValues);
timeChange(jQuery('#checkintime').val());
});
}
function timeChange(thisinvalue)
{
var timeArray = {'0' : '12:00am', '1' : '1:00am', '2' : '2:00am', '3' : '3:00am', '4' : '4:00am', '5' : '5:00am', '6' : '6:00am', '7' : '7:00am', '8' : '8:00am', '9' : '9:00am', '10' : '10:00am', '11' : '11:00am', '12' : '12:00pm', '13' : '1:00pm', '14' : '2:00pm','15' : '3:00pm', '16' : '4:00pm', '17' : '5:00pm', '18' : '6:00pm', '19' : '7:00pm', '20' : '8:00pm', '21' : '9:00pm', '22' : '10:00pm', '23' : '11:00pm'};
var timeKeysget = {'0' : '00:00:00', '1' : '01:00:00', '2' : '02:00:00', '3' : '03:00:00', '4' : '04:00:00', '5' : '05:00:00', '6' : '06:00:00', '7' : '07:00:00', '8' : '08:00:00', '9' : '09:00:00', '10' : '10:00:00', '11' : '11:00:00', '12' : '12:00:00', '13' : '13:00:00', '14' : '14:00:00','15' : '15:00:00', '16' : '16:00:00', '17' : '17:00:00', '18' : '18:00:00', '19' : '19:00:00', '20' : '20:00:00', '21' : '21:00:00', '22' : '22:00:00', '23' : '23:00:00'};
var cal_id = jQuery('#cal_id').val();
var date_of_only_hourly_booking = jQuery('#date_of_only_hourly_booking').val();
var data = {
'action': 'get_updated_checkoudate',
'cal_id': cal_id,
'thisinvalue': thisinvalue,
'date_of_only_hourly_booking': date_of_only_hourly_booking
};
var optionValues = '';
jQuery.post(vrc_data.ajax_url, data, function(response) {
var obj = jQuery.parseJSON( response );
jQuery.each(obj, function(key, value) {
optionValues += '<option value='+timeKeysget[key]+'>'+timeArray[key]+'</option>';
});
jQuery('#checkouttime').html(optionValues);
});
}
</script>";
}
$individual_currency = @json_decode($cal_data->individual_calendar_payment);
if(@$individual_currency->attr_currency != ''){
$individual_currencie = $individual_currency->attr_currency;
if($individual_currencie == 'USD'){
$individual_currencies = '$';
}else if($individual_currencie == 'AUD'){
$individual_currencies = '$';
}else{
$individual_currencies = $individual_currencie;
}
}else {
$individual_currencies = renderCurrency();
}
if($individual_currencies == "£"){
$getRenderCurrency = "£";
}else if($individual_currencies == "€"){
$getRenderCurrency = "€";
}else{
$getRenderCurrency = $individual_currencies;
}
$lang_update = esc_html( __('Calendar Updated on', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$display_ornot = (@$cal_data->calendar_update_display == 'no') ? "style='display:none'":"";
$lang_available = esc_html( __('Available', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$lang_unavailable = esc_html( __('Unavailable', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$last_sync_date = @get_date_from_gmt(@$cal_data->calendar_last_synchronized, 'F d, Y \a\t h:i a');
if($dateformat == 'usa'){
$start_dates = @$data['check_in_date'];
$newDateString = date("m-d-Y", strtotime($start_dates));
$last_sync_date = @get_date_from_gmt($cal_data->calendar_last_synchronized, 'F d, Y \a\t h:i a');
}else if ($dateformat == 'euro'){
$last_sync_date = @get_date_from_gmt($cal_data->calendar_last_synchronized, 'd F, Y \a\t h:i a');
}else{
$last_sync_date = @get_date_from_gmt(@$cal_data->calendar_last_synchronized, 'Y, F d \a\t h:i a');
}
//Attribution Code here which adds a Powered by VR Cal Sync under the Calendar.
//First, make sure it is set, if its not, set it to yes by default
$Next_arrow = esc_html( __('Next', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
$doattribution = $VRCalendarSettings->getSettings('attribution');
$textForTotal = '';
$textForTotal .= "<div class='default_price'>Total</div>";
$textForTotal .= "<div class='updated_price' style='display: none;'>".esc_html( __('Deposit Due Today', VRCALENDAR_PLUGIN_TEXT_DOMAIN) )." (".@$cal_data->deposit_percentage."%)</div>";
if(isset($_POST['user_first_name'])){ $user_first_name = $_POST['user_first_name'];}else{ $user_first_name = ''; }
if(isset($_POST['user_last_name'])){ $user_last_name = $_POST['user_last_name'];}else{ $user_last_name = ''; }
if(isset($_POST['user_email'])){ $user_email = $_POST['user_email']; }else{ $user_email = ''; }
if(isset($_POST['user_phone'])){ $user_phone = $_POST['user_phone'];}else{ $user_phone = ''; }
$calendar_extracharge_after_guest_no = 'style="display:none"';
if(@$cal_data->calendar_extracharge_after_limited_guests > 0)
{
$calendar_extracharge_after_guest_no = 'style="display:block"';
}
$calendar_extracharge_after_child_no = 'style="display:none"';
if(@$cal_data->calendar_extracharge_after_limited_child > 0)
{
$calendar_extracharge_after_child_no = 'style="display:block"';
}
$show_booking_from_one_page = @$cal_data->show_booking_from_one_page;
$calendar_enable_booking = @$cal_data->calendar_enable_booking;
$showFormData = 'style="display:none"';
if($show_booking_from_one_page == 'yes' && $calendar_enable_booking == "yes")
$showFormData = 'style="display:block"';
if (!isset($doattribution)) {
$doattribution = 'yes';}
//Next, If attribution is desired print it, otherwise print blank string
if ($doattribution == 'yes'){
$printattribution = "<div class=\"calendar-info\">".esc_html( __('Powered By', VRCALENDAR_PLUGIN_TEXT_DOMAIN) )." <a href=\"http://www.vrcalendarsync.com\" target=\"_blank\">".esc_html( __('Vacation Rental Calendar Sync', VRCALENDAR_PLUGIN_TEXT_DOMAIN) )."</a></div>";
} else {
$printattribution = "";}
$calendar_display_num_months = 0;
if(@$cal_data->calendar_display_num_months > 0){
$calendar_display_num_months = $cal_data->calendar_display_num_months;
$navigation_block = '';
if($cal_data->calendar_display_num_months <= 12){
$navigation_block = 'display:none;';
}else{
$navigation_block = 'display:block;';
}
}else{
$calendar_display_num_months = 36 ;
}
$captchaImg = VRCALENDAR_PLUGIN_URL.'Public/captcha.php';
$submitNewClass = '';
$captchaOption = '';
$recaptchaHtml = '';
$recaptchaDisplay = '';
if(@$cal_data->calendar_recaptcha == 'yes'){
$btnType = "button";
$submitNewClass = 'onclick="javascript:get_action(this);"';
if($VRCalendarSettings->getSettings('re_sitekey') == ""){
$errorkey = "<div class='errorcaptkey'>You must add the SITE KEY from reCaptcha to enable this feature!</div>";
}else{
$errorkey = "<div id='rcaptcha'></div>";
}
$recaptchaDisplay = 'display:table-row;';
$captchaScript = '
<script>
var verifyCallback = function(v) {
if(v.length != 0)
{
document.getElementById("captcha").innerHTML = "";
jQuery("#vrc_pcmd").val("saveBooking");
jQuery("#checkseasonal").attr("type","submit");
}else{
document.getElementById("captcha").innerHTML = "You cant leave Captcha Code empty";
jQuery("#vrc_pcmd").val("");
jQuery("#checkseasonal").attr("type","button");
return false;
}
};
var onloadCallback = function() {
grecaptcha.render("rcaptcha", {
"sitekey" : jQuery("#sitekey").val(),
"callback" : verifyCallback,
theme : "light"
});
};
function get_action(form) {
var v = grecaptcha.getResponse();
//alert(v);
if(v.length != 0)
{
jQuery("#vrc_pcmd").val("saveBooking");
form.submit();
}else{
document.getElementById("captcha").innerHTML = "You cant leave Captcha Code empty";
jQuery("#vrc_pcmd").val("");
jQuery("#checkseasonal").attr("type","button");
return false;
}
}
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
';
}else{
$btnType = "submit";
$captchaOption = "saveBooking";
$recaptchaDisplay = 'display:none;';
}
// $VRCalendar = VRCalendar::getInstance();
$months_per_page = @$cal_data->calendar_layout_options['rows'] * @$cal_data->calendar_layout_options['columns'];
if($months_per_page > 0){
$months_per_page = $months_per_page;
}else{
$months_per_page = 12;
}
$headout = '';
$pages = @ceil($calendar_display_num_months / $months_per_page);
//echo $pages;
$headout .= '<input type="hidden" value="'.$pages.'" class="total_pages">';
$headout .= '<input type="hidden" id="sitekey" value="'.$VRCalendarSettings->getSettings('re_sitekey').'">';
$calendar_html = getCalendar($cal_data, 1);
$calendar_css = getCalendarCSS($cal_data);
$calendar_name = @$cal_data->calendar_name;
$uid = uniqid();
if(@$cal_data->deposit_enable == 'no'){
$customhtml = '<td>'.$getRenderCurrency.'<span id="table-booking-price-with-taxes" class="finaltotal" >'.$zero_value.'</span></td>';
}else{
$customhtml = '<td>'.$getRenderCurrency.'<span id="table-booking-price-with-taxes" class="customupdatedprice">'.$zero_value.'</span></td>';
}
if($cal_data->calendar_rental_agreement_option == "upload_pdf"){
$rental_agreement = content_url().$cal_data->calendar_agreement_attachment;
}else{
$rental_agreement = $cal_data->calendar_agreement_attachment;
}
$agreement_attachment_url = (@$cal_data->calendar_rental_agreement_required == 'yes')?$cal_data->calendar_agreement_attachment:'';
$rental_agreement_text = "<input type='checkbox' name='rental_agreement_approval'> {$read_agree} <a href='".$rental_agreement."' target='_blank'>{$rental_agreement}</a> {$save_copy}.<input type='hidden' value='".$agreement_attachment_url."' name='calendar_agreement_value'>";
$calendarSetTaxperStay = @$cal_data->calendar_set_taxperstay;
if($calendarSetTaxperStay == 'no'){
$setNo = 'style="display:none;"';
}
$calendar_tax_charge = @$cal_data->calendar_tax_charge;
if($calendar_tax_charge == 'no'){
$setNoperperson = 'style="display:none;"';
}
$calendarSetGuestFees = @$cal_data->calendar_set_guestfee;
if($calendarSetGuestFees == 'no'){
$setNoGuest = 'style="display:none;"';
}
$calendarSetChildFees = @$cal_data->calendar_set_childfee;
if($calendarSetChildFees == 'no'){
$setNoChild = 'style="display:none;"';
}
if(@$cal_data->calendar_persons_option == "yes"){
$maxChild = @$cal_data->calendar_max_child_no;
}else{
$maxChild = @$cal_data->calendar_max_guest_no;
}
if(@$cal_data->calendar_child_field == "yes"){
$col = "col-sm-6";
$field = "";
$value = $cal_data->calendar_max_child_no;
$label = "Adults";
}else{
$col = "col-sm-12";
$field = "hide";
$value = "0";
$label = "Guest";
}
if(@$cal_data->calendar_set_title == "no"){
$settitle = "display:none;";
}else{
$settitle = "";
}
//$headout .= '<div class="please_wait" style="margin: 0 auto; width: 100%; display: block;position: absolute;top: 0;left: 0;height: 100%;z-index: 1;background: #fff;opacity: 0.5;"><img src="'. VRCALENDAR_PLUGIN_URL .'/assets/images/spinner.gif" alt="Smiley face" height="35" width="35"></div>';
$titlecolor = @$cal_data->calendar_layout_options['default_form_font_color'];
$formheadercolor = @$cal_data->calendar_layout_options['default_form_bg_color'];
//$show_booking_from_one_page = $cal_data->show_booking_from_one_page;
$onepagevalue = 1;
// if($show_booking_from_one_page == 'yes')
// $onepagevalue = 1;
$output = <<<E
{$div_vrc_calendar_wrapper_open}
<div class="vrc vrc-calendar vrc-calendar-id-{$calid}" id="vrc-calendar-uid-{$uid}">
<div id ="indicator-single-{$calid}" style="margin: 0 auto; width: 100%; display: none;position: absolute;top: 0;left: 0;height: 100%;z-index: 999;background: #fff;opacity: 0.5;">
<img src="{$url}/assets/images/spinner.gif" alt="Smiley face" height="35" width="35">
</div>
<div id ="indicator-single-form-{$calid}" style="margin: 0 auto; width: 100%; display: none;position: absolute;top: 0;left: 0;height: 100%;z-index: 999;background: #fff;opacity: 0.5;">
<img src="{$url}/assets/images/spinner.gif" alt="Smiley face" height="35" width="35">
</div>
<div class="calendar-header">
<div class="avail_labl">
<input type="hidden" name="onepagevalue" id="onepagevalue" value="$onepagevalue" />
<input type="hidden" name="nextpage" id="nextpage" value="1" />
<input type="hidden" name="valid_hourly_booking" id="valid_hourly_booking" value="0">
<input type="hidden" class="changedateformat" name="changedateformat" value="{$dateformat}">
<input type="hidden" name="cal_id" class="admin_calendar_id" value="{$calid}">
<input type="hidden" value="1" class="next_page-{$calid}">
<input type="hidden" name="valid_hourly_booking" id="valid_hourly_booking" value="0">
<input type="hidden" class="changedateformat" name="changedateformat" value="{$dateformat}">
<div class="blockdate_input">
<div class="label_lft">
<div class="color-label">
<div class="color-label_text">
<div class="color-label_box" style="background:#ec1919">
</div>
<div class="color-label_info">
Website Blocked
</div>
<div class="color-label_box" style="background:#e66">
</div>
<div class="color-label_info">
ICS link Blocked
</div>
<div class="color-label_box" style="background:#e96">
</div>
<div class="color-label_info">
ICS link Reserved
</div>
<div class="color-label_box" style="background:#8fb5ff">
</div>
<div class="color-label_info">
Booking Confirmed
</div>
<div class="color-label_box" style="background:#45a859">
</div>
<div class="color-label_info">
Booking Approval Needed
</div>
</div>
</div>
</div>
<div class="label_rgt">
<div class="block_date_enable">
<input type="button" id="blockdates_show" class="form-control blockdates_btn" value="Block Dates?">
<input type="button" id="addbooking_show" class="form-control bookdates_btn" value="Add Booking?">
</div>
<div class="input_date hide">
<input type="text" class="form-control required" name="blockin_date" id="booking_checkin_date" value="" placeholder="Check In Date" aria-required="true" aria-invalid="false" readonly>
<input type="text" class="form-control required" name="blockout_date" id="booking_checkout_date" value="" placeholder="Check Out Date" aria-required="true" readonly><input type="button" id="blockdates_cancel" class="form-control blockdates_btn" value="Cancel">
</div>
<div class="input_date_booking hide">
<input type="text" class="form-control required" name="blockin_date" id="add_booking_checkin_date" value="" placeholder="Check In Date" aria-required="true" aria-invalid="false" readonly>
<input type="text" class="form-control required" name="blockout_date" id="add_booking_checkout_date" value="" placeholder="Check Out Date" aria-required="true" readonly><input type="button" id="bookdates_cancel" class="form-control blockdates_btn" value="Cancel">
</div>
</div>
</div>
</div>
</div>
<div class="head-indicator">
<div class="calendar-month-name">{$month_year_name}</div>
<div class="btn-labl">
<div class="btn-nextprev">
<div class="button_calaner_header">
<div class="customNavigation">
<a class="a1 btn-prev-single-{$calid} pull-left" style="cursor:pointer;width: 30px;height: 30px;"> </a> <a class="a2 btn-next-single-{$calid} pull-right" style="cursor:pointer;width: 30px;height: 30px;"> </a>
</div>
</div>
</div>
</div>
</div>
<div class="calendar-slides calid-{$calid}">
{$calendar_html}
</div>
</div>
<script>
jQuery(".vrc-calendar .btn-select_month-single-{$calid}").change(function(){
jQuery("#indicator-single-{$calid}").show();
var id = '{$calid}';
var calendar = jQuery('.calendar-month-name').html();
var next_page = parseInt(jQuery(this).val());
var next_page_no = next_page;
jQuery("#nextpage").val(next_page_no);
var detailresponseurl = '{$siteurl}';
jQuery.ajax({
type : "post",
dataType : "html",
url : detailresponseurl,
data : {action: "getSingleCalendarCustomAdmin", calendar: calendar, type: 'next',id:id, next_page:next_page_no },
success: function(response) {
jQuery('.calid-{$calid}').html(response);
if(jQuery(".block_date_enable").hasClass("hide")){
jQuery(".no-event-day").addClass("enable_block");
}
if(!jQuery(".input_date_booking").hasClass("hide")){
jQuery(".no-event-day").addClass("enable_add");
}
jQuery("#indicator-single-{$calid}").hide();
var next_cal_page = next_page;
jQuery("#nextpage").val(next_cal_page);
var chkindate = jQuery('#booking_checkin_date').val();
var chkoutdate = jQuery('#booking_checkout_date').val();
if(isNaN(chkindate)){
jQuery(".single-calendar table tr td div[data-booking-date='" + chkindate + "']").addClass('hasClicked');
}
if(isNaN(chkoutdate)){
jQuery(this).addClass('hasClicked');
var dateformat = jQuery('.changedateformat').val();
if(dateformat == 'euro'){
var fordatein = chkindate.split("-");
var fordateout = chkoutdate.split("-");
var d_in = fordatein[0];
var m_in = fordatein[1];
var y_in = fordatein[2];
var d_out = fordateout[0];
var m_out = fordateout[1];
var y_out = fordateout[2];
var chkin = y_in+m_in+d_in;
var chkout = y_out+m_out+d_out;
}else if (dateformat == 'usa'){
var fordatein = chkindate.split("-");
var fordateout = chkoutdate.split("-");
var m_in = fordatein[0];
var d_in = fordatein[1];
var y_in = fordatein[2];
var m_out = fordateout[0];
var d_out = fordateout[1];
var y_out = fordateout[2];
var chkin = y_in+m_in+d_in;
var chkout = y_out+m_out+d_out;
}else {
var fordatein = chkindate.split("-");
var fordateout = chkoutdate.split("-");
var y_in = fordatein[0];
var m_in = fordatein[1];
var d_in = fordatein[2];
var y_out = fordateout[0];
var m_out = fordateout[1];
var d_out = fordateout[2];
var chkin = y_in+m_in+d_in;
var chkout = y_out+m_out+d_out;
}
//console.log(chkin);
//$(this).addClass('hasClicked');
jQuery(".day-number").removeClass('hasClicked');
for(var get_d = parseInt(chkin); get_d <= parseInt(chkout); get_d++){
jQuery(".single-calendar table tr td div[date-highlight='" + get_d + "']").addClass('hasClicked');
}
}
jQuery('.next_page-{$calid}').val(next_cal_page);
load_js();
}
});
});
jQuery(".vrc-calendar .btn-next-single-{$calid}").click(function(){
jQuery("#indicator-single-{$calid}").show();
var id = '{$calid}';
var calendar = jQuery('.calendar-month-name').html();
var next_page = parseInt(jQuery('.next_page-{$calid}').val());
var next_page_no = next_page+1;
var total_pages = parseInt(jQuery('.total_pages').val());
if(total_pages == next_page){
next_page_no = 1;
}
if(next_page_no > {$num_months}+1){
next_page_no = 1;
}
jQuery("#nextpage").val(next_page_no);
var detailresponseurl = '{$siteurl}';
jQuery.ajax({
type : "post",
dataType : "html",
url : detailresponseurl,
data : {action: "getSingleCalendarCustomAdmin", calendar: calendar, type: 'next',id:id, next_page:next_page_no },
success: function(response) {
jQuery('.calid-{$calid}').html(response);
jQuery("#indicator-single-{$calid}").hide();
var next_cal_page = next_page + 1;
if(total_pages == next_page){
next_cal_page = 1;
}
if(next_cal_page > {$num_months}+1){
next_cal_page = 1;
}
if(!jQuery(".input_date").hasClass("hide")){
jQuery(".no-event-day").addClass("enable_block");
}
if(!jQuery(".input_date_booking").hasClass("hide")){
jQuery(".no-event-day").addClass("enable_add");
}
jQuery("#select_month").val(next_cal_page).attr("selected","selected");
jQuery("#nextpage").val(next_cal_page);
var chkindate = jQuery('#booking_checkin_date').val();
var chkoutdate = jQuery('#booking_checkout_date').val();
if(isNaN(chkindate)){
jQuery(".single-calendar table tr td div[data-booking-date='" + chkindate + "']").addClass('hasClicked');
}
if(isNaN(chkoutdate)){
jQuery(this).addClass('hasClicked');
var dateformat = jQuery('.changedateformat').val();
if(dateformat == 'euro'){
var fordatein = chkindate.split("-");
var fordateout = chkoutdate.split("-");
var d_in = fordatein[0];
var m_in = fordatein[1];
var y_in = fordatein[2];
var d_out = fordateout[0];
var m_out = fordateout[1];
var y_out = fordateout[2];
var chkin = y_in+m_in+d_in;
var chkout = y_out+m_out+d_out;
}else if (dateformat == 'usa'){
var fordatein = chkindate.split("-");
var fordateout = chkoutdate.split("-");
var m_in = fordatein[0];
var d_in = fordatein[1];
var y_in = fordatein[2];
var m_out = fordateout[0];
var d_out = fordateout[1];
var y_out = fordateout[2];
var chkin = y_in+m_in+d_in;
var chkout = y_out+m_out+d_out;
}else {
var fordatein = chkindate.split("-");
var fordateout = chkoutdate.split("-");
var y_in = fordatein[0];
var m_in = fordatein[1];
var d_in = fordatein[2];
var y_out = fordateout[0];
var m_out = fordateout[1];
var d_out = fordateout[2];
var chkin = y_in+m_in+d_in;
var chkout = y_out+m_out+d_out;
}
//console.log(chkin);
//$(this).addClass('hasClicked');
jQuery(".day-number").removeClass('hasClicked');
for(var get_d = parseInt(chkin); get_d <= parseInt(chkout); get_d++){
jQuery(".single-calendar table tr td div[date-highlight='" + get_d + "']").addClass('hasClicked');
}
}
jQuery('.next_page-{$calid}').val(next_cal_page);
load_js();
}
});
});
jQuery(".vrc-calendar .btn-prev-single-{$calid}").click(function(){
jQuery("#indicator-single-{$calid}").show();
var id = '{$calid}';
var calendar = jQuery('.calendar-month-name').html();
var next_page = parseInt(jQuery('.next_page-{$calid}').val());
var next_page_no = next_page-1;
if(next_page_no < 1){
next_page_no = 1;
}
jQuery("#nextpage").val(next_page_no);
var detailresponseurl = '{$siteurl}';
jQuery.ajax({
type : "post",
dataType : "html",
url : detailresponseurl,
data : {action: "getSingleCalendarCustomAdmin", calendar: calendar, type: 'next',id:id, next_page:next_page_no },
success: function(response) {
jQuery('.calid-{$calid}').html(response);
jQuery("#indicator-single-{$calid}").hide();
var next_cal_page = next_page-1;
if(next_cal_page < 1){
next_cal_page = 1;
}
if(!jQuery(".input_date").hasClass("hide")){
jQuery(".no-event-day").addClass("enable_block");
}
if(!jQuery(".input_date_booking").hasClass("hide")){
jQuery(".no-event-day").addClass("enable_add");
}
jQuery("#select_month").val(next_cal_page).attr("selected","selected");
jQuery("#nextpage").val(next_cal_page);
var chkindate = jQuery('#booking_checkin_date').val();
var chkoutdate = jQuery('#booking_checkout_date').val();
if(isNaN(chkindate)){
jQuery(".single-calendar table tr td div[data-booking-date='" + chkindate + "']").addClass('hasClicked');
}
if(isNaN(chkoutdate)){
jQuery(this).addClass('hasClicked');
var dateformat = jQuery('.changedateformat').val();
if(dateformat == 'euro'){
var fordatein = chkindate.split("-");
var fordateout = chkoutdate.split("-");
var d_in = fordatein[0];
var m_in = fordatein[1];
var y_in = fordatein[2];
var d_out = fordateout[0];
var m_out = fordateout[1];
var y_out = fordateout[2];
var chkin = y_in+m_in+d_in;
var chkout = y_out+m_out+d_out;
}else if (dateformat == 'usa'){
var fordatein = chkindate.split("-");
var fordateout = chkoutdate.split("-");
var m_in = fordatein[0];
var d_in = fordatein[1];
var y_in = fordatein[2];
var m_out = fordateout[0];
var d_out = fordateout[1];
var y_out = fordateout[2];
var chkin = y_in+m_in+d_in;
var chkout = y_out+m_out+d_out;
}else {
var fordatein = chkindate.split("-");
var fordateout = chkoutdate.split("-");
var y_in = fordatein[0];
var m_in = fordatein[1];
var d_in = fordatein[2];
var y_out = fordateout[0];
var m_out = fordateout[1];
var d_out = fordateout[2];
var chkin = y_in+m_in+d_in;
var chkout = y_out+m_out+d_out;
}
//console.log(chkin);
//$(this).addClass('hasClicked');
jQuery(".day-number").removeClass('hasClicked');
for(var get_d = parseInt(chkin); get_d <= parseInt(chkout); get_d++){
jQuery(".single-calendar table tr td div[date-highlight='" + get_d + "']").addClass('hasClicked');
}
}
jQuery('.next_page-{$calid}').val(next_cal_page);
load_js();
}
});
});
function load_js(){
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.src='{$dir}assets/js/public.js?ver=1.0.0';
head.appendChild(script);
};
</script>
{$div_vrc_calendar_wrapper_close}
{$calendar_css}
E;
;
echo $output;
}else{
?>
<div class="mouse">
<?php
echo esc_html( __('This is for Pro/Enterprise Version or check your License if Expired! Please Renew or Upgrade.', VRCALENDAR_PLUGIN_TEXT_DOMAIN) );
?>
</div>
<?php
}
function getCalendarCSS($cal_data) {
$dir = VRCALENDAR_PLUGIN_URL;
$cal_id = @$cal_data->calendar_id;
$options = @$cal_data->calendar_layout_options;
$style = <<<E
<style>
#my-calendar .day-number{
position: relative;
font-weight: 600;
}
#my-calendar .pull-left{
float: left;
}
#my-calendar .pull-right{
float: right;
}
#my-calendar #select_month {
padding: 5px 30px 5px 10px !important;
}
#my-calendar .head-indicator {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 10px 0;
}
#my-calendar .btn-nextprev .customNavigation a.a1 {
background: url("{$dir}assets/images/arrow_left.png") center center no-repeat;
}
#my-calendar .btn-nextprev .customNavigation a.a2 {
background: url("{$dir}assets/images/arrow_right.png") center center no-repeat;
}
#my-calendar .customNavigation {
z-index: 9;
position: relative;
display: flex;
}
#my-calendar .blockdate_input {
display: flex;
flex-direction: row-reverse;
align-items: center;
width: 100% !important;
justify-content: space-between;
}
#my-calendar .color-label_text {
display: flex;
flex-direction: row;
align-items: center;
}
#my-calendar .color-label_text .color-label_info {
padding: 5px;
font-size: 14px;
margin-right: 5px;
}
#my-calendar .color-label_text .color-label_box {
width: 25px;
height: 25px;
}
#my-calendar .has-booking.last-data{
background: linear-gradient(135deg, #8fb5ff 50%,transparent 50%,transparent 100%);
}
#my-calendar .has-booking.first-data{
background: linear-gradient(135deg, transparent, transparent, transparent, transparent, transparent, #fff 8.5%, #8FB5FF 0);
}
#my-calendar .has-approve.last-data{
background: linear-gradient(135deg, #45a859 50%,transparent 50%,transparent 100%);
}
#my-calendar .has-approve.first-data{
background: linear-gradient(135deg, transparent, transparent, transparent, transparent, transparent, #fff 8.5%, #45a859 0);
}
#my-calendar .has-reserved_ics.last-data{
background: linear-gradient(135deg, #e96 50%,transparent 50%,transparent 100%);
}
#my-calendar .has-reserved_ics.first-data{
background: linear-gradient(135deg, transparent, transparent, transparent, transparent, transparent, #fff 8.5%, #e96 0);
}
#my-calendar .has-blocksite.last-data{
background: linear-gradient(135deg, #ec1919 50%,transparent 50%,transparent 100%);
}
#my-calendar .has-blocksite.first-data{
background: linear-gradient(135deg, transparent, transparent, transparent, transparent, transparent, #fff 8.5%, #ec1919 0);
}
#my-calendar .has-blocked_ics.last-data {
background: linear-gradient(135deg, #e66 50%,transparent 50%,transparent 100%);
}
#my-calendar .has-blocked_ics.first-data {
background: linear-gradient(135deg, transparent, transparent, transparent, transparent, transparent, #fff 8.5%, #e66 0);
}
#my-calendar .has-booking,
#my-calendar .has-approve,
#my-calendar .has-reserved_ics,
#my-calendar .has-blocksite,
#my-calendar .has-blocked_ics {
position: absolute;
left: 0;
width: 100%;
padding: 1px;
color: #fff !important;
}
#my-calendar .has-booking {
top: 24px;
background: #8fb5ff;
}
#my-calendar .has-approve {
top: 24px;
background: #45a859;
}
#my-calendar .has-blocked_ics {
background: #e66;
top: 55px;
}
#my-calendar .has-blocksite {
background: #ec1919;
top: 55px;
}
#my-calendar .has-reserved_ics {
background: #e96;
top: 80px;
}
#my-calendar .list-day {
z-index: 99;
position: absolute;
top: 0;
right: 0;
padding: 5px;
margin-right: 10px;
}
.first-data {
z-index: 1;
}
#my-calendar #indicator-single-{$cal_id} img,
.please_wait img,
#my-calendar #indicator-single-form-{$cal_id} img{
top: 50%;
position: relative;
opacity: 1;
display: block;
margin: 0 auto;
}
#my-calendar .calendar tr td.calendar-day-np {
background: #f7f7f7;
color: #3e3e3e;
}
#my-calendar .enable_block:hover {
background: #f9f9f9;
}
#my-calendar .no-event-day.enable_block.hasClicked .list-day {
color: #fff !important;
}
#my-calendar .no-event-day.enable_block {
cursor: pointer !important;
}
#my-calendar .enable_add:hover {
background: #f9f9f9;
}
#my-calendar .no-event-day.enable_add.hasClicked .list-day {
color: #fff !important;
}
#my-calendar .no-event-day.enable_add {
cursor: pointer !important;
}
#my-calendar .no-event-day {
cursor: no-drop;
}
#my-calendar .vrc {
position: relative;
}
#my-calendar .avail_labl, .date_update {
position: relative;
z-index: 2;
width: 100%;
}
#my-calendar .booking-details:hover {
opacity: 0.8;
}
#my-calendar .booking-details {
cursor: pointer;
color: #fff !important;
}
.vrc.vrc-calendar .calendar-header .btn-prev-single-{$cal_id},
.vrc.vrc-calendar .calendar-header .btn-next-single-{$cal_id} {
display: block;
width: 30px;
height: 30px;
text-indent: -99999px;
cursor: pointer;
text-decoration: none;
border: none;
}
.vrc.vrc-calendar .calendar-month-container table tr td {
padding: 0;
}
#my-calendar .calendar tr td {
text-align: center;
height: 40px;
border: 1px solid #ccc;
vertical-align: middle;
}
#my-calendar .calendar {
width: 100%;
padding-top: 20px;
}
#my-calendar .day-number.event-day.day-past {
background: #f7f7f7 !important;
}
#my-calendar .calendar tr td .event-day,
#my-calendar .calendar tr td .day-number,
#my-calendar .calendar tr td .event-start,
#my-calendar .calendar tr td .no-event-day,
#my-calendar .calendar tr td .start-end-day {
padding: 40px;
min-height: 70px;
}
#my-calendar .vrc-calendar-id-{$cal_id}{
display: flex;
flex-direction: column;
}
#my-calendar .calendar-header {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 0 0 15px 0;
}
#my-calendar .blockdate_input input.blockdates_btn:hover,
#my-calendar .blockdate_input input.bookdates_btn:hover {
opacity: 0.9;
}
#my-calendar .blockdate_input input.bookdates_btn {
min-height: 40px;
background: #328f44;
border: none;
padding: 0 20px;
color: #fff !important;
cursor: pointer;
font-weight: 500;
}
#my-calendar .blockdate_input input.blockdates_btn {
min-height: 40px;
background: #dd5b3d;
border: none;
padding: 0 20px;
color: #fff !important;
cursor: pointer;
font-weight: 500;
}
#my-calendar .calendar-slides.calid-{$cal_id} {
padding: 0 0 30px 0;
}
#my-calendar .ui-datepicker-inline.ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all {
display: none !important;
}
#my-calendar .vrc.vrc-calendar.vrc-calendar-id-{$cal_id} .calendar-month-container {
background:{$options['default_bg_color']};
color:{$options['default_font_color']};
border-color:{$options ['calendar_border_color']};
position: relative;
padding: 0 30px 30px;
}
.vrc.vrc-calendar.vrc-calendar-id-{$cal_id} * {
color:#5e5e5e;
//color:{$options['default_font_color']};
}
.vrc.vrc-calendar.vrc-calendar-id-{$cal_id} td.calendar-day-head {
background: #5e5e5e;
color: #fff;
font-weight: 600;
// background:{$options['week_header_bg_color']};
// color:{$options['week_header_font_color']};
}
.vrc.vrc-calendar.vrc-calendar-id-{$cal_id} td.calendar-day .day-number,
.vrc.vrc-calendar.vrc-calendar-id-{$cal_id} .day-number{
background: #fff;
color: #5e5e5e;
}
.vrc.vrc-calendar.vrc-calendar-id-{$cal_id} td.calendar-day .day-number.hasClicked{
background:{$options['sel_highlight_bg_color']} !important;
color:{$options['sel_highlight_font_color']};
}
.vrc.vrc-calendar.vrc-calendar-id-{$cal_id} td.calendar-day .day-number.event-day,
.vrc.vrc-calendar.vrc-calendar-id-{$cal_id} .day-number.event-day{
background: #fff;
//color: #3e3e3e;
}
.vrc.vrc-calendar.vrc-calendar-id-{$cal_id} td.calendar-day .day-number.event-start {
background: #fff;
//color: #3e3e3e;
}
.vrc.vrc-calendar.vrc-calendar-id-{$cal_id} td.calendar-day .day-number.event-end {
background: #fff;
//color: #3e3e3e;
}
.vrc.vrc-calendar.vrc-calendar-id-{$cal_id} td.calendar-day .day-number.start-end-day {
background: #fff;
//color: #3e3e3e;
}
</style>
E;
return $style;
}
function getCalendar($cal_data, $months,$next_page = 0) {
// echo $cal_data->calendar_name;
$calendar_html = '';
$months_per_page = 1;
$pages = ceil($months / $months_per_page);
$show_months = $months_per_page-1;
$next_month = 0;
$page = 0;
if($next_page){
$show_months = $next_page*$months_per_page - 1;
$next_month = ($next_page - 1) * $months_per_page;
}
while($page < $pages) {
$calendar_html .= '<div class="calendar-page" >';
for($row=1; $row<=@$cal_data->calendar_layout_options['rows'] && $next_month<=$show_months; $row++) {
$calendar_html .= '<div class="row">';
for($col=1; $col<=$cal_data->calendar_layout_options['columns'] && $next_month<=$show_months; $col++) {
//$next_data = date('Y-m-d', strtotime("+{$next_month} months"));
$next_data = date('Y-m-d', mktime(0, 0, 0, date('m')+$next_month, 1, date('Y')));
$month = date('n', strtotime($next_data));
$year = date('Y', strtotime($next_data));
$col_class = '';
if($cal_data->calendar_layout_options['columns']){
$col_class = floor(12/$cal_data->calendar_layout_options['columns']);
}
$calendar_html .= '<div class="col-md-'.$col_class.'">';
$calendar_html .= getMonthCalendar($cal_data, $month, $year);
$calendar_html .= '</div>';
$next_month++;
}
$calendar_html .= '</div>';
}
$calendar_html .= '</div>';
$page++;
}
return $calendar_html;
}
function getstatusOfCalender($calendar_id, $cDate)
{
$timeArray = array('0' => esc_html( __('12:00am', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '1' => esc_html( __('1:00am', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '2' => esc_html( __('2:00am', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '3' => esc_html( __('3:00am', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '4' => esc_html( __('4:00am', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '5' => esc_html( __('5:00am', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '6' => esc_html( __('6:00am', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '7' => esc_html( __('7:00am', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '8' => esc_html( __('8:00am', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '9' => esc_html( __('9:00am', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '10' => esc_html( __('10:00am', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '11' => esc_html( __('11:00am', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '12' => esc_html( __('12:00pm', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '13' => esc_html( __('1:00pm', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '14' => esc_html( __('2:00pm', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),'15' => esc_html( __('3:00pm', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '16' => esc_html( __('4:00pm', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '17' => esc_html( __('5:00pm', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '18' => esc_html( __('6:00pm', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '19' => esc_html( __('7:00pm', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '20' => esc_html( __('8:00pm', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '21' => esc_html( __('9:00pm', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '22' => esc_html( __('10:00pm', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '23' => esc_html( __('11:00pm', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ));
$timeKeysget = array('0' => esc_html( __('00:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '1' => esc_html( __('01:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '2' => esc_html( __('02:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '3' => esc_html( __('03:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '4' => esc_html( __('04:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '5' => esc_html( __('05:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '6' => esc_html( __('06:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '7' => esc_html( __('07:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '8' => esc_html( __('08:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '9' => esc_html( __('09:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '10' => esc_html( __('10:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '11' => esc_html( __('11:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '12' => esc_html( __('12:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '13' => esc_html( __('13:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '14' => esc_html( __('14:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),'15' => esc_html( __('15:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '16' => esc_html( __('16:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '17' => esc_html( __('17:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '18' => esc_html( __('18:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '19' => esc_html( __('19:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '20' => esc_html( __('20:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '21' => esc_html( __('21:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '22' => esc_html( __('22:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ), '23' => esc_html( __('23:00:00', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ));
global $wpdb;
$table_name = $wpdb->prefix . 'vrcalandar_bookings';
$results = $wpdb->get_results( "SELECT booking_date_from, booking_date_to FROM $table_name WHERE (booking_admin_approved = 'yes' AND booking_calendar_id = '".$calendar_id."') AND DATE(booking_date_to) <= '".$cDate."'", OBJECT );
if(count($results) > 0)
{
$arrayinTimes = array();
foreach($results as $gettimes)
{
foreach($timeKeysget as $key => $timeget)
{
$VRCalendarEntity = VRCalendarEntity::getInstance();
$cal_data = $VRCalendarEntity->getCalendar($calendar_id);
$hoursbookingdiifference = $cal_data->hoursbookingdiifference;
$dates1 = date("H:i:s", strtotime('+'.$hoursbookingdiifference.' hours', strtotime($gettimes->booking_date_to)));
$dates2 = date("H:i:s", strtotime('-'.$hoursbookingdiifference.' hours', strtotime($gettimes->booking_date_from)));
if(date("Y-m-d", strtotime('-'.$hoursbookingdiifference.' hours', strtotime($gettimes->booking_date_from))) == @$_GET['bdate']){
if(strtotime($dates2) > strtotime($timeget)){
$arrayinTimes[$key] = $timeget;
}else if(strtotime($dates1) <= strtotime($timeget)){
$arrayinTimes[$key] = $timeget;
}
}else{
if(strtotime($dates2) > strtotime($timeget)){
$arrayinTimes[$key] = $timeget;
}else if(strtotime($dates1) < strtotime($timeget)){
$arrayinTimes[$key] = $timeget;
}
}
}
}
if(count($arrayinTimes) > 0)
{
return 1;
}
else {
return 0;
}
}
else {
return 0;
}
}
function seasonalDays($from_date, $to_date){
// $from_date = new DateTime($from_date);
//$to_date = new DateTime($to_date);
$startDate = new DateTime($from_date);
$endDate = new DateTime($to_date);
$sundays = array();
while ($startDate <= $endDate) {
if ($startDate->format('w') == 0) {
$sundays[] = $startDate->format('Y-m-d');
}
$startDate->modify('+1 day');
}
var_dump($sundays);
}
function getMonthCalendar($cal_data, $month, $year) {
$bookingCalendarIds = $cal_data->calendar_id;
global $wpdb;
$unable_dates = $wpdb->get_results("SELECT * FROM `{$wpdb->prefix}vrcalandar_unable_booking` WHERE `booking_calendar_id` = '".$bookingCalendarIds."'");
$VRCalendarSettings = VRCalendarSettings::getInstance();
$dateformat = $VRCalendarSettings->getSettings('dateformat');
$VRCalendarBooking = VRCalendarBooking::getInstance();
$VRCalendarEntity = VRCalendarEntity::getInstance();
$month_name = date_i18n('F', strtotime("{$year}-{$month}-1"));
$year_name = date_i18n('Y', strtotime("{$year}-{$month}-1"));
/* draw table */
$calendar = '<table cellpadding="0" cellspacing="0" class="calendar">';
$day_start = $VRCalendarSettings->getSettings('day_start');
if($day_start == "Sat"){
$headings = array(
esc_html( __('Sat', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Sun', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Mon', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Tue', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Wed', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Thu', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Fri', VRCALENDAR_PLUGIN_TEXT_DOMAIN) )
);
$date_value = 2;
}elseif($day_start == "Mon"){
$headings = array(
esc_html( __('Mon', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Tue', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Wed', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Thu', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Fri', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Sat', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Sun', VRCALENDAR_PLUGIN_TEXT_DOMAIN) )
);
$date_value = 7;
}else{
$headings = array(
esc_html( __('Sun', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Mon', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Tue', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Wed', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Thu', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Fri', VRCALENDAR_PLUGIN_TEXT_DOMAIN) ),
esc_html( __('Sat', VRCALENDAR_PLUGIN_TEXT_DOMAIN) )
);
$date_value = 1;
}
$calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">',$headings).'</td></tr>';
/* days and weeks vars now ... */
$running_day = date('w',mktime(0,0,0,$month,$date_value,$year));
$days_in_month = date('t',mktime(0,0,0,$month,1,$year));
$days_in_this_week = 1;
$day_counter = 0;
$dates_array = array();
$prev_month = date('t',mktime(0,0,0,$month-1,1,$year))-2;
/* row for week one */
$calendar.= '<tr class="calendar-row">';
/* print "blank" days until the first of the current week */
for($x = 0; $x < $running_day; $x++):
$calendar.= '<td class="calendar-day-np"> </td>';
$days_in_this_week++;
endfor;
/* keep going with days.... */
for($list_day = 1; $list_day <= $days_in_month; $list_day++):
$cDate = date('Y-m-d', mktime(0,0,0,$month,$list_day,$year));
//custom Code
//19-02-2016
//$VRCalendarSettings = VRCalendarSettings::getInstance();
$pro_one_day_book = $cal_data->pro_one_day_book;
$hourly_booking = $cal_data->hourly_booking;
$hoursbookingdiifference = $cal_data->hoursbookingdiifference;
$show_booking_from_one_page = $cal_data->show_booking_from_one_page;
//Custom Code
if($VRCalendarBooking->isStartEndDate($cal_data, $cDate )) {
$booked_class = 'start-end-day';
//custom calender
if($hourly_booking == 'yes'){
$valuesOfData = getstatusOfCalender($cal_data->calendar_id, $cDate); //20-02-2016
if($valuesOfData == 1)
{
$booked_class = 'no-event-day'; //'no-event-day';
}else{
$booked_class = 'event-day';
}
}else if($pro_one_day_book == 'yes'){
$booked_class = 'event-day'; //'start-end-day';
}
//custom calender
}
else if($VRCalendarBooking->isStartDate($cal_data, $cDate )) {
//$booked_class = 'event-start';
$booked_class = 'no-event-day event-start';
if($hourly_booking == 'yes'){
$valuesOfData = getstatusOfCalender($cal_data->calendar_id, $cDate); //20-02-2016
if($valuesOfData == 1)
{
$booked_class = 'no-event-day'; //'no-event-day';
}else{
$booked_class = 'event-day';
}
}else if($pro_one_day_book == 'yes'){
$booked_class = 'event-day'; //'start-end-day';
}
}
else if($VRCalendarBooking->isEndDate($cal_data, $cDate )) {
$booked_class = 'no-event-day event-end';
//custom Calender
if($hourly_booking == 'yes')
{
$booked_class = 'event-day';
}
else if($pro_one_day_book == 'yes')
{
$booked_class = 'event-day';//'no-event-day event-end';
}
//Custom Calender
}
else if( $VRCalendarBooking->isDateAvailable($cal_data, $cDate )) {
$booked_class = 'no-event-day';
}
else {
$booked_class = 'event-day';
}
if(count($unable_dates) > 0)
{
foreach ($unable_dates as $unableDates)
{
$booking_date_from = date("Y-m-d", strtotime($unableDates->booking_date_from));
$booking_date_to = date("Y-m-d", strtotime($unableDates->booking_date_to));
if($unableDates->booking_date_to == '0000-00-00 00:00:00')
{
if($booking_date_from == $cDate || $booking_date_from <= $cDate)
{
//event-day
$booked_class = 'event-day';
}
}
if(strtotime($booking_date_from) <= strtotime($cDate) && strtotime($booking_date_to) >= strtotime($cDate))
{
if($VRCalendarBooking->isStartEndDateBlocked($cal_data, $cDate )) {
$booked_class = 'start-end-day';
//custom calender
if($hourly_booking == 'yes'){
$valuesOfData = getstatusOfCalender($cal_data->calendar_id, $cDate); //20-02-2016
if($valuesOfData == 1)
{
$booked_class = 'no-event-day'; //'no-event-day';
}else{
$booked_class = 'event-day';
}
}else if($pro_one_day_book == 'yes'){
$booked_class = 'event-day'; //'start-end-day';
}
//custom calender
}
else if($VRCalendarBooking->isStartDateBlocked($cal_data, $cDate )) {
//$booked_class = 'event-start';
$booked_class = 'no-event-day event-start';
if($hourly_booking == 'yes'){
$valuesOfData = getstatusOfCalender($cal_data->calendar_id, $cDate); //20-02-2016
if($valuesOfData == 1)
{
$booked_class = 'no-event-day'; //'no-event-day';
}else{
$booked_class = 'event-day';
}
}else if($pro_one_day_book == 'yes'){
$booked_class = 'event-day'; //'start-end-day';
}
}
else if($VRCalendarBooking->isEndDateBlocked($cal_data, $cDate )) {
$booked_class = 'no-event-day event-end';
//custom Calender
if($hourly_booking == 'yes')
{
$booked_class = 'event-day';
}
else if($pro_one_day_book == 'yes')
{
$booked_class = 'event-day';//'no-event-day event-end';
}
//Custom Calender
}
else if( $VRCalendarBooking->isDateAvailableBlocked($cal_data, $cDate )) {
$booked_class = 'no-event-day';
}
else {
$booked_class = 'event-day';
}
}
}
}
$booking_price = $VRCalendarEntity->getSingleNightCost($cal_data, $cDate);
$month_namedd = date_i18n('m', strtotime("{$year}-{$month}-1"));
$year_namedd = date_i18n('Y', strtotime("{$year}-{$month}-1"));
$date = $year_namedd.'/'.$month_namedd.'/'.$list_day;
$ddd = date('l', strtotime($date));
$getcalendardata = $VRCalendarEntity->getCalendar($bookingCalendarIds);
if($getcalendardata->weekend_pricing == 'yes' && $getcalendardata->weekend_pricing != ''){
switch($ddd){
case 'Friday':
if($getcalendardata->friday_night_discount != ''){
$booking_price = number_format($getcalendardata->friday_night_discount, 2, '.', '');
}
break;
case 'Saturday':
if($getcalendardata->saturday_night_discount != ''){
$booking_price = number_format($getcalendardata->saturday_night_discount, 2, '.', '');
}
break;
case 'Sunday':
if($getcalendardata->sunday_night_discount != ''){
$booking_price = number_format($getcalendardata->sunday_night_discount, 2, '.', '');
}
break;
}
}
if($dateformat == 'usa'){
$cDate = date('m-d-Y', mktime(0,0,0,$month,$list_day,$year));
}else if($dateformat == 'euro'){
$cDate = date('d-m-Y', mktime(0,0,0,$month,$list_day,$year));
}else{
$cDate = date('Y-m-d', mktime(0,0,0,$month,$list_day,$year));
}
$datetohighlight = date('Ymd', mktime(0,0,0,$month,$list_day,$year));
$calendar.= '<td class="calendar-day">';
$newArray = array();
$seasonal_weekend_price = '';
//echo $cDate;
if(!empty($cal_data->calendar_price_exception)){
foreach($cal_data->calendar_price_exception as $keys=>$seasonalprices){
$begin = strtotime($seasonalprices->start_date);
$end = strtotime($seasonalprices->end_date);
$currentdatetime = strtotime($date);
$seasonal_day_array = array();
// if($cal_data->calendar_enable_booking == 'yes' ){
if(isset($begin) && isset($end)){
if($begin <= $currentdatetime && $currentdatetime <= $end){
$startDate = new DateTime($seasonalprices->start_date);
$endDate = new DateTime($seasonalprices->end_date);
$sundays = array();
while ($startDate <= $endDate) {
if($dateformat == 'usa'){
$seasonal_full_date = $startDate->format('m-d-Y');
}else if($dateformat == 'euro'){
$seasonal_full_date = $startDate->format('d-m-Y');
}else{
$seasonal_full_date = $startDate->format('Y-m-d');
}
$sundays[$seasonal_full_date] = $startDate->format('l');
$startDate->modify('+1 day');
}
$booking_price = '';
foreach($sundays as $daykey=>$dayvalue){
if($dateformat == 'usa'){
$expl_daykey = explode('-', $daykey);
$daykey1 = $expl_daykey[2].'-'.$expl_daykey[0].'-'.$expl_daykey[1];
$expl_cDate = explode('-', $cDate);
$cDate1 = $expl_cDate[2].'-'.$expl_cDate[0].'-'.$expl_cDate[1];
}
switch ($dayvalue){
case 'Friday':
if(strtotime($daykey1) != strtotime($cDate1)){
$booking_price = number_format(@$seasonalprices->variation_price_per_night, 2, '.', '');
}else{
$booking_price = number_format(@$seasonalprices->variation_friday_weekend_pricing, 2, '.', '');
$seasonal_weekend_price = $booking_price;
}
break;
case 'Saturday':
if(strtotime($daykey1) == strtotime($cDate1)){
$booking_price = number_format(@$seasonalprices->variation_saturday_weekend_pricing, 2, '.', '');
$seasonal_weekend_price = $booking_price;
}else{
$booking_price = number_format(@$seasonalprices->variation_price_per_night, 2, '.', '');
}
break;
case 'Sunday':
if(strtotime($daykey1) == strtotime($cDate1)){
$booking_price = number_format(@$seasonalprices->variation_sunday_weekend_pricing, 2, '.', '');
$seasonal_weekend_price = $booking_price;
}else{
$booking_price = number_format(@$seasonalprices->variation_price_per_night, 2, '.', '');
}
break;
default:
$booking_price = number_format(@$seasonalprices->variation_price_per_night, 2, '.', '');
}
}
}
}
}
}
if($cal_data->calendar_enable_booking == "yes"){
$bookingurl = "yes";
}else{
$bookingurl = $cal_data->calendar_booking_url;
}
if( $seasonal_weekend_price!=''){
$booking_price = $seasonal_weekend_price;
}
if($cal_data->calendar_show_tooltip == "yes"){
$tooltip = $booking_price;
}else{
$tooltip = '';
}
$dateparam = '';
if(!empty($VRCalendarSettings->getSettings('get_param'))){
$splitdate = explode("=",$VRCalendarSettings->getSettings('get_param'));
$param_format = $splitdate[1];
$dateparam = 'data-parameter="'.date($param_format, mktime(0,0,0,$month,$list_day,$year)).'"';
}
$caldate = strtotime(date('Ymd', mktime(0,0,0,$month,$list_day,$year)));
$caldatenow = strtotime(date('Ymd'));
if($caldate < $caldatenow){
$booked_class = 'event-day day-past';
}
$booking_table = $wpdb->prefix.'vrcalandar_bookings';
$getbooked = $wpdb->get_results("SELECT * FROM {$booking_table} WHERE booking_calendar_id = '{$bookingCalendarIds}' AND booking_source = 'website' AND booking_status = 'confirmed'");
$getapprove = $wpdb->get_results("SELECT * FROM {$booking_table} WHERE booking_calendar_id = '{$bookingCalendarIds}' AND booking_source = 'website' AND booking_status = 'pending' AND booking_admin_approved = 'no'");
$getbooked_ics = $wpdb->get_results("SELECT * FROM {$booking_table} WHERE booking_calendar_id = '{$bookingCalendarIds}' AND booking_source LIKE '%ics%'OR booking_source LIKE '%ical%' AND booking_summary LIKE '%reserved%'");
$getlocked_ics = $wpdb->get_results("SELECT * FROM {$booking_table} WHERE booking_calendar_id = '{$bookingCalendarIds}' AND booking_source LIKE '%ics%' OR booking_source LIKE '%ical%' AND booking_summary LIKE '%blocked%' OR booking_summary LIKE '%Not available%'");
$getNotincluded_file = $wpdb->get_results("SELECT * FROM {$booking_table} WHERE booking_calendar_id = '{$bookingCalendarIds}' AND (booking_source LIKE '%ics%' OR booking_source LIKE '%ical%') AND booking_summary NOT LIKE '%blocked%' OR booking_summary NOT LIKE '%Not available%' AND booking_source != 'website'");
$getblocked_website = $wpdb->get_results("SELECT * FROM {$booking_table} WHERE booking_calendar_id = '{$bookingCalendarIds}' AND booking_source = 'Website Blocked' AND booking_summary = 'UNAVAILABLE'");
//echo $booking_price;
$calendar .= '<div class="day-number '.$booked_class.'" '.$dateparam.' data-tooltip="" book-url="'.$bookingurl.'" data-calendar-id="'.$cal_data->calendar_id.'" date-highlight="'.$datetohighlight.'" data-booking-date="'.$cDate.'" data-price="'.$booking_price.'"><div class="list-day">'.$list_day.'</div>';
$cls_dbook = "";
foreach($getbooked as $dbook){
for ($x=strtotime($dbook->booking_date_from);$x<=strtotime($dbook->booking_date_to);$x+=86400){
if(date('Y-m-d',$x) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)))
{
if(date('Y-m-d', strtotime($dbook->booking_date_from)) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)) || $list_day == 1){
if(!empty($dbook->booking_user_email)){
$details_text = "Confirmed Booking";
//$highlight_color = '#8fb5ff';
}else{
// foreach($cal_data->calendar_links as $clink) {
// $highlight_color = $clink->color;
// if(!empty($clink->name)){
// $details_text = ucfirst($clink->name);
// }else{
$details_text = $dbook->booking_summary;
// }
// }
}
$individual_currency = json_decode($dbook->booking_sub_price);
$details = '<div class="has-booking first-data has_popup" data-calendar-id="'.$bookingCalendarIds.'" data-booking-id="'.$dbook->booking_id.'" style="border-left: 1px solid #fff;"><a title="Click to see details.." class="booking-details" data-calendar-id="'.$bookingCalendarIds.'" data-booking-id="'.$dbook->booking_id.'">'.$details_text.'</a>
<span class="popuptext my_popup_'.$dbook->booking_id.'">
<table class="popup_table">
<tr>
<td>Full Name: </td><td>'.ucfirst($dbook->booking_user_lname).', '.ucfirst($dbook->booking_user_fname).'</td>
</tr>
<tr>
<td>Email: </td><td>'.$dbook->booking_user_email.'</td>
</tr>
<tr>
<td>Contact: </td><td>'.$dbook->booking_user_phone.'</td>
</tr>
<tr>
<td>Total Amount: </td><td>'.$individual_currency->render_currency.$dbook->booking_total_price.'</td>
</tr>
</table>
</span>
</div>';
}else{
if(date('Y-m-d', strtotime($dbook->booking_date_to)) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)) || $booked_class == 'event-end'){
$cls_dbook .= ' last-data';
}
$details = '<div class="has-booking'.$cls_dbook.'"> </div>';
}
$calendar .= $details;
}
}
}
$cls_getNotincluded_file = "";
foreach($getNotincluded_file as $d_notincluded){
for ($x=strtotime($d_notincluded->booking_date_from);$x<=strtotime($d_notincluded->booking_date_to);$x+=86400){
if(date('Y-m-d',$x) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)))
{
if(date('Y-m-d', strtotime($d_notincluded->booking_date_from)) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)) || $list_day == 1){
if(!empty($d_notincluded->booking_user_email)){
$details_text = ucfirst($d_notincluded->booking_user_fname).', '.$d_notincluded->booking_user_email;
//$highlight_color = '#8fb5ff';
}else{
// foreach($cal_data->calendar_links as $clink) {
// $highlight_color = $clink->color;
// if(!empty($clink->name)){
// $details_text = ucfirst($clink->name);
// }else{
$details_text = $d_notincluded->booking_summary;
// }
// }
}
$details = '<div class="has-reserved_ics first-data" style="border-left: 1px solid #fff;">'.$details_text.'</div>';
}else{
if(date('Y-m-d', strtotime($d_notincluded->booking_date_to)) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)) || $booked_class == 'event-end'){
$cls_getNotincluded_file .= ' last-data';
}
$details = '<div class="has-reserved_ics'.$cls_getNotincluded_file.'"> </div>';
}
$calendar .= $details;
}
}
}
$cls_dblocksite = "";
foreach($getblocked_website as $dblocksite){
for ($x=strtotime($dblocksite->booking_date_from);$x<=strtotime($dblocksite->booking_date_to);$x+=86400){
if(date('Y-m-d',$x) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)))
{
if(date('Y-m-d', strtotime($dblocksite->booking_date_from)) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)) || $list_day == 1){
if(!empty($dblocksite->booking_user_email)){
$details_text = ucfirst($dblocksite->booking_user_fname).', '.$dblocksite->booking_user_email;
//$highlight_color = '#8fb5ff';
}else{
// foreach($cal_data->calendar_links as $clink) {
// $highlight_color = $clink->color;
// if(!empty($clink->name)){
// $details_text = ucfirst($clink->name);
// }else{
$details_text = $dblocksite->booking_summary;
// }
// }
}
$details = '<div class="has-blocksite first-data" style="border-left: 1px solid #fff;">'.$details_text.'</div>';
}else{
if(date('Y-m-d', strtotime($dblocksite->booking_date_to)) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)) || $booked_class == 'event-end'){
$cls_dblocksite .= ' last-data';
}
$details = '<div class="has-blocksite'.$cls_dblocksite.'"> </div>';
}
$calendar .= $details;
}
}
}
$cls_dbook_ics = "";
foreach($getbooked_ics as $dbook_ics){
for ($x=strtotime($dbook_ics->booking_date_from);$x<=strtotime($dbook_ics->booking_date_to);$x+=86400){
if(date('Y-m-d',$x) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)))
{
if(date('Y-m-d', strtotime($dbook_ics->booking_date_from)) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)) || $list_day == 1){
if(!empty($dbook_ics->booking_user_email)){
$details_text = ucfirst($dbook_ics->booking_user_fname).', '.$dbook_ics->booking_user_email;
//$highlight_color = '#8fb5ff';
}else{
// foreach($cal_data->calendar_links as $clink) {
// $highlight_color = $clink->color;
// if(!empty($clink->name)){
// $details_text = ucfirst($clink->name);
// }else{
$details_text = $dbook_ics->booking_summary;
// }
// }
}
$details = '<div class="has-reserved_ics first-data" style="border-left: 1px solid #fff;">'.$details_text.'</div>';
}else{
if(date('Y-m-d', strtotime($dbook_ics->booking_date_to)) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)) || $booked_class == 'event-end'){
$cls_dbook_ics .= ' last-data';
}
$details = '<div class="has-reserved_ics'.$cls_dbook_ics.'"> </div>';
}
$calendar .= $details;
}
}
}
$cls_dlocked_ics = "";
foreach($getlocked_ics as $dlocked_ics){
for ($x=strtotime($dlocked_ics->booking_date_from);$x<=strtotime($dlocked_ics->booking_date_to);$x+=86400){
if(date('Y-m-d',$x) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)))
{
if(date('Y-m-d', strtotime($dlocked_ics->booking_date_from)) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)) || $list_day == 1){
if(!empty($dlocked_ics->booking_user_email)){
$details_text = ucfirst($dlocked_ics->booking_user_fname).', '.$dlocked_ics->booking_user_email;
//$highlight_color = '#8fb5ff';
}else{
// foreach($cal_data->calendar_links as $clink) {
// $highlight_color = $clink->color;
// if(!empty($clink->name)){
// $details_text = ucfirst($clink->name);
// }else{
$details_text = $dlocked_ics->booking_summary;
// }
// }
}
$details = '<div class="has-blocked_ics first-data" style="border-left: 1px solid #fff;">'.$details_text.'</div>';
}else{
if(date('Y-m-d', strtotime($dlocked_ics->booking_date_to)) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)) || $booked_class == 'event-end'){
$cls_dlocked_ics .= ' last-data';
}
$details = '<div class="has-blocked_ics'.$cls_dlocked_ics.'"> </div>';
}
$calendar .= $details;
}
}
}
$cls_dapprove = "";
foreach($getapprove as $dapprove){
for ($x=strtotime($dapprove->booking_date_from);$x<=strtotime($dapprove->booking_date_to);$x+=86400){
if(date('Y-m-d',$x) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)))
{
if(date('Y-m-d', strtotime($dapprove->booking_date_from)) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)) || $list_day == 1){
if(!empty($dapprove->booking_user_email)){
$details_text = "Needs Approval";
//$highlight_color = '#8fb5ff';
}else{
// foreach($cal_data->calendar_links as $clink) {
// $highlight_color = $clink->color;
// if(!empty($clink->name)){
// $details_text = ucfirst($clink->name);
// }else{
$details_text = $dapprove->booking_summary;
// }
// }
}
$individual_currency_approve = json_decode($dapprove->booking_sub_price);
$details = '<div class="has-approve has_popup first-data" data-calendar-id="'.$bookingCalendarIds.'" data-booking-id="'.$dapprove->booking_id.'" style="border-left: 1px solid #fff;"><a title="Click to see details.." class="booking-details" data-calendar-id="'.$bookingCalendarIds.'" data-booking-id="'.$dapprove->booking_id.'">'.$details_text.'</a>
<div class="popuptext my_popup_'.$dapprove->booking_id.'">
<table class="popup_table">
<tr>
<td>Full Name: </td><td>'.ucfirst($dapprove->booking_user_lname).', '.ucfirst($dapprove->booking_user_fname).'</td>
</tr>
<tr>
<td>Email: </td><td>'.$dapprove->booking_user_email.'</td>
</tr>
<tr>
<td>Contact: </td><td>'.$dapprove->booking_user_phone.'</td>
</tr>
<tr>
<td>Total Amount: </td><td>'.$individual_currency_approve->render_currency.$dapprove->booking_total_price.'</td>
</tr>
</table>
<input type="button" value="View" class="view_has_approve" data-calendar-id="'.$bookingCalendarIds.'" data-booking-id="'.$dapprove->booking_id.'"/>
</div>
</div>';
}else{
if(date('Y-m-d', strtotime($dapprove->booking_date_to)) == date('Y-m-d', mktime(0,0,0,$month,$list_day,$year)) || $booked_class == 'event-end'){
$cls_dapprove .= ' last-data';
}
$details = '<div class="has-approve'.$cls_dapprove.'"> </div>';
}
$calendar .= $details;
}
}
}
$calendar .= '</div>';
/* add in the day number */
$calendar.= '</td>';
if($running_day == 6):
$calendar.= '</tr>';
if(($day_counter+1) != $days_in_month):
$calendar.= '<tr class="calendar-row">';
endif;
$running_day = -1;
$days_in_this_week = 0;
endif;
$days_in_this_week++; $running_day++; $day_counter++;
$dc = $day_counter;
endfor;
/* finish the rest of the days in the week */
if($days_in_this_week < 8 && $days_in_this_week>1):
for($x = 1; $x <= (8 - $days_in_this_week); $x++):
$calendar.= '<td class="calendar-day-np"> </td>';
endfor;
endif;
/* final row */
$calendar.= '</tr>';
/* end the table */
$calendar.= '</table>';
$result = <<<E
<div class="calendar-month-container single-calendar">
{$calendar}
</div>
E;
return $result;
}
?>