function handle_form_submit()
 {
     global $byt_accommodations_post_type, $byt_room_types_post_type;
     if ((isset($_POST['insert']) || isset($_POST['update'])) && check_admin_referer('accommodation_vacancy_nonce')) {
         $accommodation_id = wp_kses($_POST['accommodations_select'], '');
         $accommodation_obj = new byt_accommodation(intval($accommodation_id));
         $accommodation_id = $accommodation_obj->get_base_id();
         $room_type_id = isset($_POST['room_types_select']) ? wp_kses($_POST['room_types_select'], '') : 0;
         $room_type_obj = new byt_room_type(intval($room_type_id));
         $room_type_id = $room_type_obj->get_base_id();
         $is_self_catered = $accommodation_obj->get_is_self_catered();
         $is_price_per_person = $accommodation_obj->get_is_price_per_person();
         $season_name = wp_kses($_POST['season_name'], '');
         $room_count = isset($_POST['room_count']) ? intval(wp_kses($_POST['room_count'], '')) : 1;
         $price_per_day = floatval(wp_kses($_POST['price_per_day'], ''));
         $price_per_day_child = isset($_POST['price_per_day_child']) ? floatval(wp_kses($_POST['price_per_day_child'], '')) : 0;
         $date_from = wp_kses($_POST['date_from'], '');
         $start_date = $date_from;
         $date_to = wp_kses($_POST['date_to'], '');
         $end_date = $date_to;
         if (isset($_POST['insert'])) {
             $error = '';
             if (empty($accommodation_id)) {
                 $error = __('You must select an accommodation', 'bookyourtravel');
             } else {
                 if (!$is_self_catered && $room_type_id <= 0) {
                     $error = __('You must select a room type', 'bookyourtravel');
                 } else {
                     if (empty($date_from)) {
                         $error = __('You must select a from date', 'bookyourtravel');
                     } else {
                         if (empty($date_to)) {
                             $error = __('You must select a to date', 'bookyourtravel');
                         } else {
                             if (empty($price_per_day) || $price_per_day === 0) {
                                 $error = __('You must provide a valid price per day', 'bookyourtravel');
                             }
                         }
                     }
                 }
             }
             if (!empty($error)) {
                 echo '<div class="error" id="message" onclick="this.parentNode.removeChild(this)">';
                 echo '<p>' . $error . '</p>';
                 echo '</div>';
             } else {
                 $byt_accommodations_post_type->create_accommodation_vacancy($season_name, $start_date, $end_date, $accommodation_id, $room_type_id, $room_count, $price_per_day, $price_per_day_child);
                 echo '<div class="updated" id="message" onclick="this.parentNode.removeChild(this)">';
                 echo '<p>' . __('Successfully inserted new vacancy!', 'bookyourtravel') . '</p>';
                 echo '</div>';
             }
         } else {
             if (isset($_POST['update'])) {
                 $error = '';
                 if (empty($accommodation_id)) {
                     $error = __('You must select an accommodation', 'bookyourtravel');
                 } else {
                     if (!$is_self_catered && empty($room_type_id)) {
                         $error = __('You must select a room type', 'bookyourtravel');
                     } else {
                         if (!$is_self_catered && (empty($room_count) || $room_count === 0)) {
                             $error = __('You must provide a valid room count', 'bookyourtravel');
                         } else {
                             if (empty($date_from)) {
                                 $error = __('You must select a from date', 'bookyourtravel');
                             } else {
                                 if (empty($date_to)) {
                                     $error = __('You must select a to date', 'bookyourtravel');
                                 } else {
                                     if (empty($price_per_day) || $price_per_day === 0) {
                                         $error = __('You must provide a valid price per day', 'bookyourtravel');
                                     }
                                 }
                             }
                         }
                     }
                 }
                 if (!empty($error)) {
                     echo '<div class="error" id="message" onclick="this.parentNode.removeChild(this)">';
                     echo '<p>' . $error . '</p>';
                     echo '</div>';
                 } else {
                     $vacancy_id = absint($_POST['vacancy_id']);
                     $byt_accommodations_post_type->update_accommodation_vacancy($vacancy_id, $season_name, $start_date, $end_date, $accommodation_id, $room_type_id, $room_count, $price_per_day, $price_per_day_child);
                     echo '<div class="updated" id="message" onclick="this.parentNode.removeChild(this)">';
                     echo '<p>' . sprintf(__('Successfully updated vacancy (id=%d)!', 'bookyourtravel'), $vacancy_id) . '</p>';
                     echo '</div>';
                 }
             }
         }
     } else {
         if (isset($_POST['delete_vacancy'])) {
             $vacancy_id = absint($_POST['delete_vacancy']);
             $byt_accommodations_post_type->delete_accommodation_vacancy($vacancy_id);
             echo '<div class="updated" id="message" onclick="this.parentNode.removeChild(this)">';
             echo '<p>' . __('Successfully deleted vacancy!', 'bookyourtravel') . '</p>';
             echo '</div>';
         }
     }
 }