</div> </div> </form> <h2><?php echo __('Available Rooms', 'trav'); ?> </h2> <div class="room-list listing-style3 hotel"> <?php //get accommodation rooms if (!empty($room_types)) { if (!empty($date_from) && !empty($date_to)) { echo '<input type="hidden" name="pre_searched" value="1">'; $return_value = trav_acc_get_available_rooms($acc_id, $_GET['date_from'], $_GET['date_to'], $rooms, $adults, $kids, $child_ages, $except_booking_no, $pin_code); if (is_array($return_value)) { $number_of_days = count($return_value['check_dates']); $available_room_type_ids = $return_value['bookable_room_type_ids']; if (!empty($available_room_type_ids)) { foreach ($available_room_type_ids as $room_type_id) { $room_price = 0; foreach ($return_value['check_dates'] as $check_date) { $room_price += (double) $return_value['prices'][$room_type_id][$check_date]['total']; } trav_acc_get_room_detail_html($room_type_id, 'available', $room_price, $number_of_days, $rooms); } } $not_available_room_type_ids = array_diff($return_value['matched_room_type_ids'], $return_value['bookable_room_type_ids']); if (!empty($not_available_room_type_ids)) { foreach ($not_available_room_type_ids as $room_type_id) {
function trav_ajax_acc_get_available_rooms() { //validation and initiate variables $result_json = array('success' => 0, 'result' => ''); if (!isset($_POST['_wpnonce']) || !isset($_POST['accommodation_id']) || !wp_verify_nonce($_POST['_wpnonce'], 'post-' . sanitize_text_field($_POST['accommodation_id']))) { $result_json['success'] = 0; $result_json['result'] = __('Sorry, your nonce did not verify.', 'trav'); wp_send_json($result_json); } $rooms = isset($_POST['rooms']) && is_numeric($_POST['rooms']) ? sanitize_text_field($_POST['rooms']) : 1; $adults = isset($_POST['adults']) && is_numeric($_POST['adults']) ? sanitize_text_field($_POST['adults']) : 1; $kids = isset($_POST['kids']) && is_numeric($_POST['kids']) ? sanitize_text_field($_POST['kids']) : 0; $child_ages = isset($_POST['child_ages']) ? $_POST['child_ages'] : ''; if (isset($_POST['accommodation_id']) && isset($_POST['date_from']) && trav_strtotime($_POST['date_from']) && isset($_POST['date_to']) && trav_strtotime($_POST['date_to']) && time() - 60 * 60 * 24 < trav_strtotime($_POST['date_from'])) { $acc_id = (int) $_POST['accommodation_id']; $except_booking_no = 0; $pin_code = 0; if (isset($_POST['edit_booking_no'])) { $except_booking_no = sanitize_text_field($_POST['edit_booking_no']); } if (isset($_POST['pin_code'])) { $pin_code = sanitize_text_field($_POST['pin_code']); } $return_value = trav_acc_get_available_rooms($acc_id, $_POST['date_from'], $_POST['date_to'], $rooms, $adults, $kids, $child_ages, $except_booking_no, $pin_code); if (!empty($return_value) && is_array($return_value)) { $number_of_days = count($return_value['check_dates']); ob_start(); $available_room_type_ids = $return_value['bookable_room_type_ids']; if (!empty($available_room_type_ids)) { foreach ($available_room_type_ids as $room_type_id) { $room_price = 0; foreach ($return_value['check_dates'] as $check_date) { $room_price += (double) $return_value['prices'][$room_type_id][$check_date]['total']; } trav_acc_get_room_detail_html($room_type_id, 'available', $room_price, $number_of_days, $rooms); } } $not_available_room_type_ids = array_diff($return_value['matched_room_type_ids'], $return_value['bookable_room_type_ids']); if (!empty($not_available_room_type_ids)) { foreach ($not_available_room_type_ids as $room_type_id) { trav_acc_get_room_detail_html($room_type_id, 'not_available'); } } $not_match_room_type_ids = array_diff($return_value['all_room_type_ids'], $return_value['matched_room_type_ids']); if (!empty($not_match_room_type_ids)) { foreach ($not_match_room_type_ids as $room_type_id) { trav_acc_get_room_detail_html($room_type_id, 'not_match'); } } $output = ob_get_contents(); ob_end_clean(); $result_json['success'] = 1; $result_json['result'] = $output; } else { $result_json['success'] = 1; $result_json['result'] = $return_value; } } else { $result_json['success'] = 0; $result_json['result'] = __('Invalid input data', 'trav'); } wp_send_json($result_json); }
wp_nonce_field('booking-' . $booking_data['booking_no'], '_wpnonce', false); ?> <div class="update-search clearfix"> <div class="row"> <div class="col-xs-12"> <label><?php _e('AVAILABLE ROOMS', 'trav'); ?> </label> <div class="selector validation-field"> <select name="room_type_id" class="full-width" data-original-val="<?php echo esc_attr($room_type_id); ?> "> <?php $return_value = trav_acc_get_available_rooms($acc_id, $booking_data['date_from'], $booking_data['date_to'], $booking_data['rooms'], $booking_data['adults'], $booking_data['kids'], $booking_data['child_ages'], $booking_data['booking_no'], $booking_data['pin_code']); if (!empty($return_value) && is_array($return_value)) { foreach ($return_value['bookable_room_type_ids'] as $room_id) { $room_price = 0; foreach ($return_value['check_dates'] as $check_date) { $room_price += (double) $return_value['prices'][$room_id][$check_date]['total']; } $room_price *= 1 + $tax_rate / 100; $selected = ''; $room_id_lang = trav_room_clang_id($room_id); if ($room_id_lang == $room_type_id) { $selected = 'selected'; } echo '<option value="' . esc_attr($room_id) . '" ' . esc_attr($selected) . '>' . esc_html(get_the_title($room_id_lang) . ' (' . trav_get_price_field($room_price, $booking_data['currency_code'], 0) . ')') . '</option>'; } }