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>'; } } }