function wpdev_bk_insert_new_booking() { make_bk_action('check_multiuser_params_for_client_side', $_POST["bktype"]); global $wpdb; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Define init variables //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// $dates = $_POST["dates"]; $bktype = $_POST["bktype"]; $formdata = $_POST["form"]; $formdata = escape_any_xss($formdata); $is_send_emeils = 1; if (isset($_POST["is_send_emeils"])) { $is_send_emeils = $_POST["is_send_emeils"]; } $my_booking_id = 0; $my_booking_hash = ''; if (isset($_POST['my_booking_hash'])) { $my_booking_hash = $_POST['my_booking_hash']; if ($my_booking_hash != '') { $my_booking_id_type = false; $my_booking_id_type = apply_bk_filter('wpdev_booking_get_hash_to_id', false, $my_booking_hash); if ($my_booking_id_type !== false) { $my_booking_id = $my_booking_id_type[0]; $bktype = $my_booking_id_type[1]; } } } if (strpos($dates, ' - ') !== FALSE) { $dates = explode(' - ', $dates); $dates = createDateRangeArray($dates[0], $dates[1]); } /// CAPTCHA CHECKING ////////////////////////////////////////////////////////////////////////////////////// $the_answer_from_respondent = $_POST['captcha_user_input']; $prefix = $_POST['captcha_chalange']; if (!($the_answer_from_respondent == '' && $prefix == '')) { $captcha_instance = new wpdevReallySimpleCaptcha(); $correct = $captcha_instance->check($prefix, $the_answer_from_respondent); if (!$correct) { $word = $captcha_instance->generate_random_word(); $prefix = mt_rand(); $captcha_instance->generate_image($prefix, $word); $filename = $prefix . '.png'; $captcha_url = WPDEV_BK_PLUGIN_URL . '/js/captcha/tmp/' . $filename; $ref = substr($filename, 0, strrpos($filename, '.')); ?> <script type="text/javascript"> document.getElementById('captcha_input<?php echo $bktype; ?> ').value = ''; // chnage img document.getElementById('captcha_img<?php echo $bktype; ?> ').src = '<?php echo $captcha_url; ?> '; document.getElementById('wpdev_captcha_challenge_<?php echo $bktype; ?> ').value = '<?php echo $ref; ?> '; document.getElementById('captcha_msg<?php echo $bktype; ?> ').innerHTML = '<div style="height:20px;width:100%;text-align:center;margin:15px auto;"><?php echo __('Your entered code is incorrect', 'wpdev-booking'); ?> </div>'; document.getElementById('submiting<?php echo $bktype; ?> ').innerHTML =''; jQuery('#captcha_input<?php echo $bktype; ?> ') .fadeOut( 350 ).fadeIn( 300 ) .fadeOut( 350 ).fadeIn( 400 ) .animate( {opacity: 1}, 4000 ) ; // mark red border jQuery(".wpdev-help-message div") .css( {'color' : 'red'} ) .animate( {opacity: 1}, 10000 ) .fadeOut( 2000 ); // hide message document.getElementById('captcha_input<?php echo $bktype; ?> ').focus(); // make focus to elemnt </script> <?php die; } } ////////////////////////////////////////////////////////////////////////////////////////////////////////// $booking_form_show = get_form_content($formdata, $bktype); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// $my_modification_date = "'" . date_i18n('Y-m-d H:i:s') . "'"; // Localize booking modification date $my_modification_date = 'NOW()'; // Server value modification date if ($my_booking_id > 0) { // Edit exist booking if (strpos($_SERVER['HTTP_REFERER'], 'wp-admin/admin.php?') !== false) { ?> <script type="text/javascript"> document.getElementById('ajax_working').innerHTML = '<div class="info_message ajax_message" id="ajax_message">\n\ <div style="float:left;"><?php echo __('Updating...', 'wpdev-booking'); ?> </div> \n\ <div style="float:left;width:80px;margin-top:-3px;">\n\ <img src="'+wpdev_bk_plugin_url+'/img/ajax-loader.gif">\n\ </div>\n\ </div>'; </script> <?php } $update_sql = "UPDATE " . $wpdb->prefix . "booking AS bk SET bk.form='{$formdata}', bk.booking_type={$bktype} , bk.modification_date=" . $my_modification_date . " WHERE bk.booking_id={$my_booking_id};"; if (false === $wpdb->query($wpdb->prepare($update_sql))) { ?> <script type="text/javascript"> document.getElementById('submiting<?php echo $bktype; ?> ').innerHTML = '<div style="height:20px;width:100%;text-align:center;margin:15px auto;"><?php bk_error('Error during updating exist booking in BD', __FILE__, __LINE__); ?> </div>'; </script> <?php die; } // Check if dates already aproved or no $slct_sql = "SELECT approved FROM " . $wpdb->prefix . "bookingdates WHERE booking_id IN ({$my_booking_id}) LIMIT 0,1"; $slct_sql_results = $wpdb->get_results($wpdb->prepare($slct_sql)); if (count($slct_sql_results) > 0) { $is_approved_dates = $slct_sql_results[0]->approved; } $delete_sql = "DELETE FROM " . $wpdb->prefix . "bookingdates WHERE booking_id IN ({$my_booking_id})"; if (false === $wpdb->query($wpdb->prepare($delete_sql))) { ?> <script type="text/javascript"> document.getElementById('submiting<?php echo $bktype; ?> ').innerHTML = '<div style="height:20px;width:100%;text-align:center;margin:15px auto;"><?php bk_error('Error during updating exist booking for deleting dates in BD', __FILE__, __LINE__); ?> </div>'; </script> <?php die; } $booking_id = (int) $my_booking_id; //Get ID of reservation } else { // Add new booking $sql_insertion = "INSERT INTO " . $wpdb->prefix . "booking (form, booking_type, modification_date) VALUES ('{$formdata}', {$bktype}, " . $my_modification_date . " )"; //debuge($formdata); if (false === $wpdb->query($wpdb->prepare($sql_insertion))) { ?> <script type="text/javascript"> document.getElementById('submiting<?php echo $bktype; ?> ').innerHTML = '<div style="height:20px;width:100%;text-align:center;margin:15px auto;"><?php bk_error('Error during inserting into BD', __FILE__, __LINE__); ?> </div>'; </script> <?php die; } // Make insertion into BOOKINGDATES $booking_id = (int) $wpdb->insert_id; //Get ID of reservation $is_approved_dates = '0'; $auto_approve_new_bookings_is_active = get_bk_option('booking_auto_approve_new_bookings_is_active'); if (trim($auto_approve_new_bookings_is_active) == 'On') { $is_approved_dates = '1'; } } $sdform = $_POST['form']; $my_dates = explode(",", $dates); $i = 0; foreach ($my_dates as $md) { $my_dates[$i] = trim($my_dates[$i]); $i++; } $start_end_time = get_times_from_bk_form($sdform, $my_dates, $bktype); $start_time = $start_end_time[0]; $end_time = $start_end_time[1]; $my_dates = $start_end_time[2]; make_bk_action('wpdev_booking_post_inserted', $booking_id, $bktype, str_replace('|', ',', $dates), array($start_time, $end_time)); $my_cost = apply_bk_filter('get_booking_cost_from_db', '', $booking_id); $i = 0; foreach ($my_dates as $md) { // Set in dates in such format: yyyy.mm.dd if ($md != '') { $md = explode('.', $md); $my_dates[$i] = $md[2] . '.' . $md[1] . '.' . $md[0]; } else { unset($my_dates[$i]); } // If some dates is empty so remove it // This situation can be if using several bk calendars and some calendars is not checked $i++; } sort($my_dates); // Sort dates $my_dates4emeil = ''; $i = 0; $insert = ''; $my_date_previos = ''; foreach ($my_dates as $my_date) { $i++; // Loop through all dates if (strpos($my_date, '.') !== false) { if (get_bk_option('booking_recurrent_time') !== 'On') { $my_date = explode('.', $my_date); if ($i == 1) { $date = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $my_date[0], $my_date[1], $my_date[2], $start_time[0], $start_time[1], $start_time[2]); } elseif ($i == count($my_dates)) { $date = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $my_date[0], $my_date[1], $my_date[2], $end_time[0], $end_time[1], $end_time[2]); } else { $date = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $my_date[0], $my_date[1], $my_date[2], '00', '00', '00'); } $my_dates4emeil .= $date . ','; if (!empty($insert)) { $insert .= ', '; } $insert .= "('{$booking_id}', '{$date}', '{$is_approved_dates}' )"; } else { if ($my_date_previos == $my_date) { continue; } // escape for single day selections. $my_date_previos = $my_date; $my_date = explode('.', $my_date); $date = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $my_date[0], $my_date[1], $my_date[2], $start_time[0], $start_time[1], $start_time[2]); $my_dates4emeil .= $date . ','; if (!empty($insert)) { $insert .= ', '; } $insert .= "('{$booking_id}', '{$date}', '{$is_approved_dates}' )"; $date = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $my_date[0], $my_date[1], $my_date[2], $end_time[0], $end_time[1], $end_time[2]); $my_dates4emeil .= $date . ','; if (!empty($insert)) { $insert .= ', '; } $insert .= "('{$booking_id}', '{$date}', '{$is_approved_dates}' )"; } } } $my_dates4emeil = substr($my_dates4emeil, 0, -1); $my_dates4emeil_check_in_out = explode(',', $my_dates4emeil); $my_check_in_date = change_date_format($my_dates4emeil_check_in_out[0]); $my_check_out_date = change_date_format($my_dates4emeil_check_in_out[count($my_dates4emeil_check_in_out) - 1]); /* // This add 1 more day for check out day $my_check_out_date = $my_dates4emeil_check_in_out[ count($my_dates4emeil_check_in_out)-1 ]; $dt = trim($my_check_out_date); $dta = explode(' ',$dt); $dta = $dta[0]; $dta = explode('-',$dta); $my_check_out_date = date('Y-m-d H:i:s' , mktime(0, 0, 0, $dta[1], ($dta[2]+1), $dta[0] )); $my_check_out_date = change_date_format($my_check_out_date); /**/ if (!empty($insert)) { if (false === $wpdb->query($wpdb->prepare("INSERT INTO " . $wpdb->prefix . "bookingdates (booking_id, booking_date, approved) VALUES " . $insert))) { ?> <script type="text/javascript"> document.getElementById('submiting<?php echo $bktype; ?> ').innerHTML = '<div style="height:20px;width:100%;text-align:center;margin:15px auto;"><?php bk_error('Error during inserting into BD - Dates', __FILE__, __LINE__); ?> </div>'; </script> <?php die; } } if (function_exists('get_booking_title')) { $bk_title = get_booking_title($bktype); } else { $bk_title = ''; } if ($my_booking_id > 0) { // For editing exist booking $mail_sender = htmlspecialchars_decode(get_bk_option('booking_email_modification_adress')); $mail_subject = htmlspecialchars_decode(get_bk_option('booking_email_modification_subject')); $mail_body = htmlspecialchars_decode(get_bk_option('booking_email_modification_content')); $mail_subject = apply_bk_filter('wpdev_check_for_active_language', $mail_subject); $mail_body = apply_bk_filter('wpdev_check_for_active_language', $mail_body); if (function_exists('get_booking_title')) { $bk_title = get_booking_title($bktype); } else { $bk_title = ''; } $booking_form_show = get_form_content($formdata, $bktype); $mail_body_to_send = str_replace('[bookingtype]', $bk_title, $mail_body); if (get_bk_option('booking_date_view_type') == 'short') { $my_dates_4_send = get_dates_short_format(get_dates_str($booking_id)); } else { $my_dates_4_send = change_date_format(get_dates_str($booking_id)); } $mail_body_to_send = str_replace('[dates]', $my_dates_4_send, $mail_body_to_send); $mail_body_to_send = str_replace('[check_in_date]', $my_check_in_date, $mail_body_to_send); $mail_body_to_send = str_replace('[check_out_date]', $my_check_out_date, $mail_body_to_send); $mail_body_to_send = str_replace('[id]', $booking_id, $mail_body_to_send); $mail_body_to_send = str_replace('[content]', $booking_form_show['content'], $mail_body_to_send); if (!isset($denyreason)) { $denyreason = ''; } $mail_body_to_send = str_replace('[denyreason]', $denyreason, $mail_body_to_send); $mail_body_to_send = str_replace('[name]', $booking_form_show['name'], $mail_body_to_send); $mail_body_to_send = str_replace('[cost]', $my_cost, $mail_body_to_send); if (isset($booking_form_show['secondname'])) { $mail_body_to_send = str_replace('[secondname]', $booking_form_show['secondname'], $mail_body_to_send); } $mail_body_to_send = str_replace('[siteurl]', htmlspecialchars_decode('<a href="' . site_url() . '">' . site_url() . '</a>'), $mail_body_to_send); $mail_body_to_send = apply_bk_filter('wpdev_booking_set_booking_edit_link_at_email', $mail_body_to_send, $booking_id); $mail_subject = str_replace('[name]', $booking_form_show['name'], $mail_subject); if (isset($booking_form_show['secondname'])) { $mail_subject = str_replace('[secondname]', $booking_form_show['secondname'], $mail_subject); } $mail_recipient = $booking_form_show['email']; $mail_headers = "From: {$mail_sender}\n"; $mail_headers .= "Content-Type: text/html\n"; if (get_bk_option('booking_is_email_modification_adress') != 'Off') { // Send to the Visitor if (strpos($mail_recipient, '@blank.com') === false && strpos($mail_body_to_send, '*****@*****.**') === false) { if ($is_send_emeils != 0) { @wp_mail($mail_recipient, $mail_subject, $mail_body_to_send, $mail_headers); } } // Send to the Admin also $mail_recipient = htmlspecialchars_decode(get_bk_option('booking_email_reservation_adress')); $is_email_modification_send_copy_to_admin = get_bk_option('booking_is_email_modification_send_copy_to_admin'); if ($is_email_modification_send_copy_to_admin == 'On') { if (strpos($mail_recipient, '@blank.com') === false && strpos($mail_body_to_send, '*****@*****.**') === false) { if ($is_send_emeils != 0) { @wp_mail($mail_recipient, $mail_subject, $mail_body_to_send, $mail_headers); } } } } //debuge($_SERVER); if (strpos($_SERVER['HTTP_REFERER'], 'wp-admin/admin.php?') === false) { do_action('wpdev_new_booking', $booking_id, $bktype, str_replace('|', ',', $dates), array($start_time, $end_time), $sdform); } ?> <script type="text/javascript"> <?php if (strpos($_SERVER['HTTP_REFERER'], 'wp-admin/admin.php?') === false) { ?> //document.getElementById('submiting<?php echo $bktype; ?> ').innerHTML = '<div class=\"submiting_content\" ><?php echo get_bk_option('booking_title_after_reservation'); ?> </div>'; //jQuery('.submiting_content').fadeOut(<?php echo get_bk_option('booking_title_after_reservation_time'); ?> ); setReservedSelectedDates('<?php echo $bktype; ?> '); <?php } else { ?> document.getElementById('ajax_message').innerHTML = '<?php echo __('Updated successfully', 'wpdev-booking'); ?> '; jQuery('#ajax_message').fadeOut(1000); document.getElementById('submiting<?php echo $bktype; ?> ').innerHTML = '<div style="height:20px;width:100%;text-align:center;margin:15px auto;"><?php echo __('Updated successfully', 'wpdev-booking'); ?> </div>'; location.href='admin.php?page=<?php echo WPDEV_BK_PLUGIN_DIRNAME . '/' . WPDEV_BK_PLUGIN_FILENAME; ?> wpdev-booking&booking_type=<?php echo $bktype; ?> &booking_id_selection=<?php echo $my_booking_id; ?> '; <?php } ?> </script> <?php } else { if (count($my_dates) > 0) { //// For inserting NEW booking // Sending mail /////////////////////////////////////////////////////// $mail_sender = htmlspecialchars_decode(get_bk_option('booking_email_reservation_from_adress')); //'"'. 'Booking sender' . '" <' . $booking_form_show['email'].'>'; $mail_recipient = htmlspecialchars_decode(get_bk_option('booking_email_reservation_adress')); //'"Booking receipent" <' .get_option('admin_email').'>'; $mail_subject = htmlspecialchars_decode(get_bk_option('booking_email_reservation_subject')); $mail_body = htmlspecialchars_decode(get_bk_option('booking_email_reservation_content')); $mail_subject = apply_bk_filter('wpdev_check_for_active_language', $mail_subject); $mail_body = apply_bk_filter('wpdev_check_for_active_language', $mail_body); $mail_body = str_replace('[bookingtype]', $bk_title, $mail_body); if (get_bk_option('booking_date_view_type') == 'short') { $my_dates_4_send = get_dates_short_format($my_dates4emeil); } else { $my_dates_4_send = change_date_format($my_dates4emeil); } $mail_body = str_replace('[dates]', $my_dates_4_send, $mail_body); $mail_body = str_replace('[check_in_date]', $my_check_in_date, $mail_body); $mail_body = str_replace('[check_out_date]', $my_check_out_date, $mail_body); $mail_body = str_replace('[id]', $booking_id, $mail_body); $mail_body = str_replace('[content]', $booking_form_show['content'], $mail_body); $mail_body = str_replace('[name]', $booking_form_show['name'], $mail_body); $mail_body = str_replace('[cost]', $my_cost, $mail_body); $mail_body = str_replace('[siteurl]', htmlspecialchars_decode('<a href="' . site_url() . '">' . site_url() . '</a>'), $mail_body); $mail_body = str_replace('[moderatelink]', htmlspecialchars_decode('<a href="' . site_url() . '/wp-admin/admin.php?page=' . WPDEV_BK_PLUGIN_DIRNAME . '/' . WPDEV_BK_PLUGIN_FILENAME . 'wpdev-booking&booking_type=' . $bktype . '&moderate_id=' . $booking_id . '">' . __('here', 'wpdev-booking') . '</a>'), $mail_body); $mail_body = apply_bk_filter('wpdev_booking_set_booking_edit_link_at_email', $mail_body, $booking_id); if (isset($booking_form_show['secondname'])) { $mail_body = str_replace('[secondname]', $booking_form_show['secondname'], $mail_body); } $mail_subject = str_replace('[name]', $booking_form_show['name'], $mail_subject); if (isset($booking_form_show['secondname'])) { $mail_subject = str_replace('[secondname]', $booking_form_show['secondname'], $mail_subject); } $mail_headers = "From: {$mail_sender}\n"; $mail_headers .= "Content-Type: text/html\n"; if (strpos($mail_recipient, '[visitoremeil]') !== false) { $mail_recipient = str_replace('[visitoremeil]', $booking_form_show['email'], $mail_recipient); } if (get_bk_option('booking_is_email_reservation_adress') != 'Off') { if (strpos($mail_recipient, '@blank.com') === false && strpos($mail_body, '*****@*****.**') === false) { if ($is_send_emeils != 0) { @wp_mail($mail_recipient, $mail_subject, $mail_body, $mail_headers); } } } ///////////////////////////////////////////////////////////////////////// if (get_bk_option('booking_is_email_newbookingbyperson_adress') == 'On') { $mail_sender = htmlspecialchars_decode(get_bk_option('booking_email_newbookingbyperson_adress')); //'"'. 'Booking sender' . '" <' . $booking_form_show['email'].'>'; $mail_recipient = $booking_form_show['email']; $mail_subject = htmlspecialchars_decode(get_bk_option('booking_email_newbookingbyperson_subject')); $mail_body = htmlspecialchars_decode(get_bk_option('booking_email_newbookingbyperson_content')); $mail_subject = apply_bk_filter('wpdev_check_for_active_language', $mail_subject); $mail_body = apply_bk_filter('wpdev_check_for_active_language', $mail_body); $mail_body = str_replace('[bookingtype]', $bk_title, $mail_body); if (get_bk_option('booking_date_view_type') == 'short') { $my_dates_4_send = get_dates_short_format($my_dates4emeil); } else { $my_dates_4_send = change_date_format($my_dates4emeil); } $mail_body = str_replace('[dates]', $my_dates_4_send, $mail_body); $mail_body = str_replace('[check_in_date]', $my_check_in_date, $mail_body); $mail_body = str_replace('[check_out_date]', $my_check_out_date, $mail_body); $mail_body = str_replace('[id]', $booking_id, $mail_body); $mail_body = str_replace('[content]', $booking_form_show['content'], $mail_body); $mail_body = str_replace('[name]', $booking_form_show['name'], $mail_body); $mail_body = str_replace('[cost]', $my_cost, $mail_body); $mail_body = str_replace('[siteurl]', htmlspecialchars_decode('<a href="' . site_url() . '">' . site_url() . '</a>'), $mail_body); $mail_body = apply_bk_filter('wpdev_booking_set_booking_edit_link_at_email', $mail_body, $booking_id); if (isset($booking_form_show['secondname'])) { $mail_body = str_replace('[secondname]', $booking_form_show['secondname'], $mail_body); } $mail_subject = str_replace('[name]', $booking_form_show['name'], $mail_subject); if (isset($booking_form_show['secondname'])) { $mail_subject = str_replace('[secondname]', $booking_form_show['secondname'], $mail_subject); } $mail_headers = "From: {$mail_sender}\n"; $mail_headers .= "Content-Type: text/html\n"; if (strpos($mail_recipient, '[visitoremeil]') !== false) { $mail_recipient = str_replace('[visitoremeil]', $booking_form_show['email'], $mail_recipient); } if (strpos($mail_recipient, '@blank.com') === false) { if (strpos($mail_recipient, '@blank.com') === false && strpos($mail_body, '*****@*****.**') === false) { if ($is_send_emeils != 0) { @wp_mail($mail_recipient, $mail_subject, $mail_body, $mail_headers); } } } } } do_action('wpdev_new_booking', $booking_id, $bktype, str_replace('|', ',', $dates), array($start_time, $end_time), $sdform); ?> <script type="text/javascript"> setReservedSelectedDates('<?php echo $bktype; ?> '); </script> <?php } // ReUpdate booking resource TYPE if its needed here if (!empty($dates)) { // check to have dates not empty make_bk_action('wpdev_booking_reupdate_bk_type_to_childs', $booking_id, $bktype, str_replace('|', ',', $dates), array($start_time, $end_time), $sdform); } }
function wpdev_get_bk_listing_structure_engine($args) { global $wpdb; ///debuge($_REQUEST); $sql_boking_listing = wpdev_sql_get_booking_listing($args); //debuge($args, $sql_boking_listing); $sql_start_count = $sql_boking_listing[0]; $sql_start_select = $sql_boking_listing[1]; $sql = $sql_boking_listing[2]; $sql_where = $sql_boking_listing[3]; $sql_order = $sql_boking_listing[4]; $sql_limit = $sql_boking_listing[5]; $num_per_page_check = get_bk_option('bookings_num_per_page'); if (empty($num_per_page_check)) { $num_per_page_check = '10'; } $defaults = array('wh_booking_type' => '', 'wh_approved' => '', 'wh_booking_id' => '', 'wh_is_new' => '', 'wh_pay_status' => '', 'wh_keyword' => '', 'wh_booking_date' => '', 'wh_booking_date2' => '', 'wh_modification_date' => '', 'wh_modification_date2' => '', 'wh_cost' => '', 'wh_cost2' => '', 'or_sort' => get_bk_option('booking_sort_order'), 'page_num' => '1', 'page_items_count' => $num_per_page_check); $r = wp_parse_args($args, $defaults); extract($r, EXTR_SKIP); $page_start = ($page_num - 1) * $page_items_count; //debuge($sql_start_select . $sql . $sql_where . $sql_order . $sql_limit); //debuge($sql_start_select . $sql . $sql_where . $sql_order . $sql_limit); // Get Bookings Array $bookings_res = $wpdb->get_results($sql_start_select . $sql . $sql_where . $sql_order . $sql_limit); // Get Number of booking for the pages $bookings_count = $wpdb->get_results($sql_start_count . $sql . $sql_where); // Get NUMBER of Bookings if (count($bookings_count) > 0) { $bookings_count = $bookings_count[0]->count; } else { $bookings_count = 0; } $booking_types = apply_bk_filter('wpdebk_get_keyed_all_bk_resources', array()); // Bookings array init - Get the ID list of ALL bookings $booking_id_list = array(); $bookings = array(); $short_days = array(); $short_days_type_id = array(); if (count($bookings_res) > 0) { foreach ($bookings_res as $booking) { if (!in_array($booking->booking_id, $booking_id_list)) { $booking_id_list[] = $booking->booking_id; } $bookings[$booking->booking_id] = $booking; $bookings[$booking->booking_id]->dates = array(); $bookings[$booking->booking_id]->dates_short = array(); $bk_list_type = isset($booking->booking_type) ? $booking->booking_type : '1'; if (isset($booking->sync_gid) && !empty($booking->sync_gid)) { $booking->form .= "~text^sync_gid{$booking->booking_type}^{$booking->sync_gid}"; } $cont = get_form_content($booking->form, $bk_list_type, '', array('booking_id' => $booking->booking_id, 'resource_title' => isset($booking_types[$booking->booking_type]) ? $booking_types[$booking->booking_type] : '')); $search = array("'(<br[ ]?[/]?>)+'si", "'(<p[ ]?[/]?>)+'si", "'(<div[ ]?[/]?>)+'si"); $replace = array(" ", " ", " "); $cont['content'] = preg_replace($search, $replace, $cont['content']); $bookings[$booking->booking_id]->form_show = $cont['content']; unset($cont['content']); $bookings[$booking->booking_id]->form_data = $cont; } } $booking_id_list = implode(",", $booking_id_list); $booking_id_list = wpbc_clean_string_for_db($booking_id_list); if (!empty($booking_id_list)) { // Get Dates for all our Bookings $sql = " SELECT *\n FROM {$wpdb->prefix}bookingdates as dt\n WHERE dt.booking_id in ( {$booking_id_list} ) "; if (class_exists('wpdev_bk_biz_l')) { $sql .= " ORDER BY booking_id, type_id, booking_date "; } else { $sql .= " ORDER BY booking_id, booking_date "; } $booking_dates = $wpdb->get_results($sql); } else { $booking_dates = array(); } $last_booking_id = ''; // Add Dates to Bookings array foreach ($booking_dates as $date) { $bookings[$date->booking_id]->dates[] = $date; if ($date->booking_id != $last_booking_id) { if (!empty($last_booking_id)) { if ($last_show_day != $dte) { $short_days[] = $dte; $short_days_type_id[] = $last_day_id; } $bookings[$last_booking_id]->dates_short = $short_days; $bookings[$last_booking_id]->dates_short_id = $short_days_type_id; } $last_day = ''; $last_day_id = ''; $last_show_day = ''; $short_days = array(); $short_days_type_id = array(); } $last_booking_id = $date->booking_id; $dte = $date->booking_date; if (empty($last_day)) { // First date $short_days[] = $dte; $short_days_type_id[] = isset($date->type_id) ? $date->type_id : ''; $last_show_day = $dte; } else { // All other days if (wpdevbk_is_next_day($dte, $last_day)) { if ($last_show_day != '-') { $short_days[] = '-'; $short_days_type_id[] = ''; } $last_show_day = '-'; } else { if ($last_show_day != $last_day) { $short_days[] = $last_day; $short_days_type_id[] = $last_day_id; } $short_days[] = ','; $short_days_type_id[] = ''; $short_days[] = $dte; $short_days_type_id[] = isset($date->type_id) ? $date->type_id : ''; $last_show_day = $dte; } } $last_day = $dte; $last_day_id = isset($date->type_id) ? $date->type_id : ''; } if (isset($dte)) { if ($last_show_day != $dte) { $short_days[] = $dte; $short_days_type_id[] = isset($date->type_id) ? $date->type_id : ''; } } if (isset($bookings[$last_booking_id])) { $bookings[$last_booking_id]->dates_short = $short_days; $bookings[$last_booking_id]->dates_short_id = $short_days_type_id; } // If we selected the Dates as "Check In - Today/Tommorow", then show only the bookings, where check in date is Today if (isset($args['wh_booking_date']) && $args['wh_booking_date'] == '7') { //$today_mysql_format = date('Y-m-d'); //$today_mysql_format = date('Y-m-d', time() +86400 ); //1 Day = 24*60*60 = 86400 $today_mysql_format = date_i18n('Y-m-d', time() + get_option('gmt_offset') * HOUR_IN_SECONDS + DAY_IN_SECONDS); // Tommorow day with gmt offset foreach ($bookings as $bc_id => $bc_value) { $check_in_date = $bc_value->dates_short[0]; $check_in_date = explode(' ', $check_in_date); $check_in_date = $check_in_date[0]; // 2014-02-25 if ($today_mysql_format != $check_in_date) { unset($bookings[$bc_id]); $bookings_count--; } } } //debuge( 'Before filtering:', date('Y-m-d', time() +86400 ), $_REQUEST, $bookings ) ; // If we selected the Dates as "Check Out - Tomorow", then show only the bookings, where check out date is Tomorrow if (isset($args['wh_booking_date']) && $args['wh_booking_date'] == '8') { //$tomorrow_mysql_format = date('Y-m-d', time() +86400 ); //1 Day = 24*60*60 = 86400 $tomorrow_mysql_format = date_i18n('Y-m-d', time() + get_option('gmt_offset') * HOUR_IN_SECONDS + DAY_IN_SECONDS); // Tommorow day with gmt offset foreach ($bookings as $bc_id => $bc_value) { if (count($bc_value->dates_short) == 1) { $check_out_date = $bc_value->dates_short[0]; } else { $check_out_date = $bc_value->dates_short[2]; } $check_out_date = explode(' ', $check_out_date); $check_out_date = $check_out_date[0]; // 2014-02-25 if ($tomorrow_mysql_format != $check_out_date) { unset($bookings[$bc_id]); $bookings_count--; } } } //debuge( 'After filtering:', $tomorrow_mysql_format, $bookings ) ; //debuge(array($bookings , $booking_types, $bookings_count, $page_num, $page_items_count)); return array($bookings, $booking_types, $bookings_count, $page_num, $page_items_count); }
function wpdev_get_bk_listing_structure_engine($args) { global $wpdb; $sql_boking_listing = wpdev_sql_get_booking_lising($args); $sql_start_count = $sql_boking_listing[0]; $sql_start_select = $sql_boking_listing[1]; $sql = $sql_boking_listing[2]; $sql_where = $sql_boking_listing[3]; $sql_order = $sql_boking_listing[4]; $sql_limit = $sql_boking_listing[5]; $num_per_page_check = get_bk_option('bookings_num_per_page'); if (empty($num_per_page_check)) { $num_per_page_check = '10'; } $defaults = array('wh_booking_type' => '', 'wh_approved' => '', 'wh_booking_id' => '', 'wh_is_new' => '', 'wh_pay_status' => '', 'wh_keyword' => '', 'wh_booking_date' => '', 'wh_booking_date2' => '', 'wh_modification_date' => '', 'wh_modification_date2' => '', 'wh_cost' => '', 'wh_cost2' => '', 'or_sort' => get_bk_option('booking_sort_order'), 'page_num' => '1', 'page_items_count' => $num_per_page_check); $r = wp_parse_args($args, $defaults); extract($r, EXTR_SKIP); $page_start = ($page_num - 1) * $page_items_count; // Get Bookings Array $bookings_res = $wpdb->get_results($wpdb->prepare($sql_start_select . $sql . $sql_where . $sql_order . $sql_limit)); // Get Number of booking for the pages $bookings_count = $wpdb->get_results($wpdb->prepare($sql_start_count . $sql . $sql_where)); // Get NUMBER of Bookings if (count($bookings_count) > 0) { $bookings_count = $bookings_count[0]->count; } else { $bookings_count = 0; } // Bookings array init - Get the ID list of ALL bookings $booking_id_list = array(); $bookings = array(); $short_days = array(); $short_days_type_id = array(); if (count($bookings_res) > 0) { foreach ($bookings_res as $booking) { if (!in_array($booking->booking_id, $booking_id_list)) { $booking_id_list[] = $booking->booking_id; } $bookings[$booking->booking_id] = $booking; $bookings[$booking->booking_id]->dates = array(); $bookings[$booking->booking_id]->dates_short = array(); $bk_list_type = isset($booking->booking_type) ? $booking->booking_type : '1'; $cont = get_form_content($booking->form, $bk_list_type); // $search = REPLACED LINE HERE!! $replace = array(" ", " ", " "); $cont['content'] = preg_replace($search, $replace, $cont['content']); $bookings[$booking->booking_id]->form_show = $cont['content']; unset($cont['content']); $bookings[$booking->booking_id]->form_data = $cont; } } $booking_id_list = implode(",", $booking_id_list); if (!empty($booking_id_list)) { // Get Dates for all our Bookings $sql = " SELECT *\r\n FROM " . $wpdb->prefix . "bookingdates as dt\r\n WHERE dt.booking_id in ( " . $booking_id_list . ") "; if (class_exists('wpdev_bk_biz_l')) { $sql .= " ORDER BY booking_id, type_id, booking_date "; } else { $sql .= " ORDER BY booking_id, booking_date "; } $booking_dates = $wpdb->get_results($wpdb->prepare($sql)); } else { $booking_dates = array(); } $last_booking_id = ''; // Add Dates to Bookings array foreach ($booking_dates as $date) { $bookings[$date->booking_id]->dates[] = $date; if ($date->booking_id != $last_booking_id) { if (!empty($last_booking_id)) { if ($last_show_day != $dte) { $short_days[] = $dte; $short_days_type_id[] = $last_day_id; } $bookings[$last_booking_id]->dates_short = $short_days; $bookings[$last_booking_id]->dates_short_id = $short_days_type_id; } $last_day = ''; $last_day_id = ''; $last_show_day = ''; $short_days = array(); $short_days_type_id = array(); } $last_booking_id = $date->booking_id; $dte = $date->booking_date; if (empty($last_day)) { // First date $short_days[] = $dte; $short_days_type_id[] = isset($date->type_id) ? $date->type_id : ''; $last_show_day = $dte; } else { // All other days if (wpdevbk_is_next_day($dte, $last_day)) { if ($last_show_day != '-') { $short_days[] = '-'; $short_days_type_id[] = ''; } $last_show_day = '-'; } else { if ($last_show_day != $last_day) { $short_days[] = $last_day; $short_days_type_id[] = $last_day_id; } $short_days[] = ','; $short_days_type_id[] = ''; $short_days[] = $dte; $short_days_type_id[] = isset($date->type_id) ? $date->type_id : ''; $last_show_day = $dte; } } $last_day = $dte; $last_day_id = isset($date->type_id) ? $date->type_id : ''; } if (isset($dte)) { if ($last_show_day != $dte) { $short_days[] = $dte; $short_days_type_id[] = isset($date->type_id) ? $date->type_id : ''; } } if (isset($bookings[$last_booking_id])) { $bookings[$last_booking_id]->dates_short = $short_days; $bookings[$last_booking_id]->dates_short_id = $short_days_type_id; } $booking_types = apply_bk_filter('wpdebk_get_keyed_all_bk_resources', array()); return array($bookings, $booking_types, $bookings_count, $page_num, $page_items_count); }
function sendPaymentRequestEmail($booking_id, $bktype, $formdata, $reason = '') { $mail_sender = htmlspecialchars_decode(get_bk_option('booking_email_payment_request_adress')); $mail_subject = htmlspecialchars_decode(get_bk_option('booking_email_payment_request_subject')); $mail_body = htmlspecialchars_decode(get_bk_option('booking_email_payment_request_content')); $mail_subject = apply_bk_filter('wpdev_check_for_active_language', $mail_subject); $mail_body = apply_bk_filter('wpdev_check_for_active_language', $mail_body); $mail_body_to_send = $mail_body; $mail_subject_to_send = $mail_subject; if (function_exists('get_booking_title')) { $bk_title = get_booking_title($bktype); } else { $bk_title = ''; } $my_dates4emeil = get_dates_str($booking_id); if (get_bk_option('booking_date_view_type') == 'short') { $my_dates_4_send = get_dates_short_format($my_dates4emeil); } else { $my_dates_4_send = change_date_format($my_dates4emeil); } $my_dates4emeil_check_in_out = explode(',', $my_dates4emeil); $my_check_in_date = change_date_format($my_dates4emeil_check_in_out[0]); $my_check_out_date = change_date_format($my_dates4emeil_check_in_out[count($my_dates4emeil_check_in_out) - 1]); $my_cost = apply_bk_filter('get_booking_cost_from_db', '', $booking_id); $booking_form_show = get_form_content($formdata, $bktype, '', array('booking_id' => $booking_id, 'id' => $booking_id, 'dates' => $my_dates_4_send, 'check_in_date' => $my_check_in_date, 'check_out_date' => $my_check_out_date, 'dates_count' => count($my_dates4emeil_check_in_out), 'cost' => $my_cost, 'siteurl' => htmlspecialchars_decode('<a href="' . home_url() . '">' . home_url() . '</a>'), 'resource_title' => $bk_title, 'bookingtype' => $bk_title, 'paymentreason' => $reason)); $mail_body_to_send = str_replace('[content]', $booking_form_show['content'], $mail_body_to_send); $mail_body_to_send = apply_bk_filter('wpdev_booking_set_booking_edit_link_at_email', $mail_body_to_send, $booking_id); $mail_subject_to_send = replace_bk_shortcodes_in_form($mail_subject_to_send, $booking_form_show['_all_fields_'], true); $mail_body_to_send = replace_bk_shortcodes_in_form($mail_body_to_send, $booking_form_show['_all_fields_'], true); $mail_body_to_send = str_replace('\\n', '<br />', $mail_body_to_send); // Fix issue of showing /n instead of the new line $mail_recipients = $booking_form_show['email']; $mail_headers = "From: {$mail_sender}\nContent-Type: text/html\n"; if (strpos($mail_recipients, ',') !== false) { $mail_recipients = explode(';', $mail_recipients); } else { if (strpos($mail_recipients, ';') !== false) { $mail_recipients = explode(';', $mail_recipients); } else { $mail_recipients = array($mail_recipients); } } foreach ($mail_recipients as $mail_recipient) { if (strpos($mail_recipient, '@blank.com') === false && strpos($mail_body_to_send, '*****@*****.**') === false) { @wp_mail($mail_recipient, $mail_subject_to_send, $mail_body_to_send, $mail_headers); } $mail_headers_for_admin = "From: {$mail_recipient}\nContent-Type: text/html\n"; // Send to the Admin also $is_email_payment_request_send_copy_to_admin = get_bk_option('booking_is_email_payment_request_send_copy_to_admin'); $mail_recipient = htmlspecialchars_decode(get_bk_option('booking_email_reservation_adress')); if ($is_email_payment_request_send_copy_to_admin == 'On') { if (strpos($mail_recipient, '@blank.com') === false && strpos($mail_body_to_send, '*****@*****.**') === false) { @wp_mail($mail_recipient, $mail_subject_to_send, $mail_body_to_send, $mail_headers_for_admin); } } } if (strpos($mail_recipient, '@blank.com') === false && strpos($mail_body_to_send, '*****@*****.**') === false) { return true; } else { return false; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// }
function sendDeclineEmails($approved_id_str, $is_send_emeils, $denyreason = '') { //debuge($approved_id_str, $is_send_emeils); global $wpdb; $sql = "SELECT * FROM " . $wpdb->prefix . "booking as bk\n WHERE bk.booking_id IN ({$approved_id_str})"; $result = $wpdb->get_results($wpdb->prepare($sql)); $mail_sender = htmlspecialchars_decode(get_bk_option('booking_email_deny_adress')); $mail_subject = htmlspecialchars_decode(get_bk_option('booking_email_deny_subject')); $mail_body = htmlspecialchars_decode(get_bk_option('booking_email_deny_content')); $mail_subject = apply_bk_filter('wpdev_check_for_active_language', $mail_subject); $mail_body = apply_bk_filter('wpdev_check_for_active_language', $mail_body); foreach ($result as $res) { // Sending mail /////////////////////////////////////////////////////// if (function_exists('get_booking_title')) { $bk_title = get_booking_title($res->booking_type); } else { $bk_title = ''; } $booking_form_show = get_form_content($res->form, $res->booking_type); $mail_body_to_send = str_replace('[bookingtype]', $bk_title, $mail_body); if (get_bk_option('booking_date_view_type') == 'short') { $my_dates_4_send = get_dates_short_format(get_dates_str($res->booking_id)); } else { $my_dates_4_send = change_date_format(get_dates_str($res->booking_id)); } $my_dates4emeil_check_in_out = explode(',', get_dates_str($res->booking_id)); $my_check_in_date = change_date_format($my_dates4emeil_check_in_out[0]); $my_check_out_date = change_date_format($my_dates4emeil_check_in_out[count($my_dates4emeil_check_in_out) - 1]); $mail_body_to_send = str_replace('[dates]', $my_dates_4_send, $mail_body_to_send); $mail_body_to_send = str_replace('[check_in_date]', $my_check_in_date, $mail_body_to_send); $mail_body_to_send = str_replace('[check_out_date]', $my_check_out_date, $mail_body_to_send); $mail_body_to_send = str_replace('[id]', $res->booking_id, $mail_body_to_send); $mail_body_to_send = str_replace('[content]', $booking_form_show['content'], $mail_body_to_send); $mail_body_to_send = str_replace('[denyreason]', $denyreason, $mail_body_to_send); $mail_body_to_send = str_replace('[name]', $booking_form_show['name'], $mail_body_to_send); if (isset($res->cost)) { $mail_body_to_send = str_replace('[cost]', $res->cost, $mail_body_to_send); } $mail_body_to_send = str_replace('[siteurl]', htmlspecialchars_decode('<a href="' . site_url() . '">' . site_url() . '</a>'), $mail_body_to_send); $mail_body_to_send = apply_bk_filter('wpdev_booking_set_booking_edit_link_at_email', $mail_body_to_send, $res->booking_id); if (isset($booking_form_show['secondname'])) { $mail_body_to_send = str_replace('[secondname]', $booking_form_show['secondname'], $mail_body_to_send); } $mail_subject1 = $mail_subject; $mail_subject1 = str_replace('[name]', $booking_form_show['name'], $mail_subject1); if (isset($booking_form_show['secondname'])) { $mail_subject1 = str_replace('[secondname]', $booking_form_show['secondname'], $mail_subject1); } $mail_recipient = $booking_form_show['email']; $mail_headers = "From: {$mail_sender}\n"; $mail_headers .= "Content-Type: text/html\n"; if (get_bk_option('booking_is_email_deny_adress') != 'Off') { if ($is_send_emeils != 0) { if (strpos($mail_recipient, '@blank.com') === false && strpos($mail_body_to_send, '*****@*****.**') === false) { @wp_mail($mail_recipient, $mail_subject1, $mail_body_to_send, $mail_headers); } } } // Send to the Admin also $mail_recipient = htmlspecialchars_decode(get_bk_option('booking_email_reservation_adress')); $is_email_deny_send_copy_to_admin = get_bk_option('booking_is_email_deny_send_copy_to_admin'); if ($is_email_deny_send_copy_to_admin == 'On') { if (strpos($mail_recipient, '@blank.com') === false && strpos($mail_body_to_send, '*****@*****.**') === false) { if ($is_send_emeils != 0) { @wp_mail($mail_recipient, $mail_subject1, $mail_body_to_send, $mail_headers); } } } ///////////////////////////////////////////////////////////////////////// } }