function sync_cruise_min_price($cruise_id, $min_price, $force = false) { $last_update_time = get_post_meta($cruise_id, '_cruise_min_price_last_update', true); $last_update_time = isset($last_update_time) && !empty($last_update_time) ? $last_update_time : time(); $time_today = time(); $diff_hours = ($time_today - $last_update_time) / (60 * 60); if ($diff_hours > 24 || $force) { $cruise_id = BYT_Theme_Utils::get_default_language_post_id($cruise_id, 'cruise'); $languages = BYT_Theme_Utils::get_active_languages(); foreach ($languages as $language) { $language_cruise_id = BYT_Theme_Utils::get_language_post_id($cruise_id, 'cruise', $language); update_post_meta($language_cruise_id, '_cruise_min_price', $min_price); update_post_meta($language_cruise_id, '_cruise_min_price_last_update', time()); } } }
/** * Get the base ID of the post (ID of post in default language) * * @access public * @return int */ public function get_base_id() { return apply_filters('bookyourtravel_entity_base_id', $this->post ? BYT_Theme_Utils::get_default_language_post_id($this->post->ID, $this->entity_type) : null, $this); }
function car_rental_get_booked_days($car_rental_id, $month, $year) { global $wpdb; $car_rental_id = BYT_Theme_Utils::get_default_language_post_id($car_rental_id, 'car_rental'); $sql = "\tSELECT DISTINCT booking_date, (car_rentals_meta_number_of_cars.meta_value+0) number_of_cars\r\n\t\t\t\t\tFROM " . BOOKYOURTRAVEL_CAR_RENTAL_BOOKING_DAYS_TABLE . " days\r\n\t\t\t\t\tINNER JOIN " . BOOKYOURTRAVEL_CAR_RENTAL_BOOKINGS_TABLE . " bookings ON bookings.Id = days.car_rental_booking_id \r\n\t\t\t\t\tINNER JOIN {$wpdb->postmeta} car_rentals_meta_number_of_cars ON bookings.car_rental_id=car_rentals_meta_number_of_cars.post_id AND car_rentals_meta_number_of_cars.meta_key='car_rental_number_of_cars' \r\n\t\t\t\t\tWHERE bookings.car_rental_id=%d AND booking_date >= %s AND MONTH(booking_date) = %d AND YEAR(booking_date) = %d\r\n\t\t\t\t\tGROUP BY booking_date\r\n\t\t\t\t\tHAVING COUNT(DISTINCT car_rental_booking_id) >= number_of_cars"; $today = date('Y-m-d H:i:s'); $sql = $wpdb->prepare($sql, $car_rental_id, $today, $month, $year); return $wpdb->get_results($sql); }
function render_entry_form() { global $byt_cruises_post_type; $cruise_id = 0; $cabin_type_id = 0; $schedule_object = null; $cruise_obj = null; $cabin_type_obj = null; $is_price_per_person = 0; $cruise_type_is_repeated = 0; // on-off cruise by default $edit = isset($_GET['edit']) ? absint($_GET['edit']) : ""; if (!empty($edit)) { $schedule_object = $byt_cruises_post_type->get_cruise_schedule($edit); } if (isset($_POST['cruises_select'])) { $cruise_id = wp_kses($_POST['cruises_select'], ''); } else { if ($schedule_object != null) { $cruise_id = $schedule_object->cruise_id; } } if ($cruise_id) { $cruise_obj = new byt_cruise(intval($cruise_id)); $cruise_id = $cruise_obj->get_base_id(); $cruise_type_is_repeated = $cruise_obj->get_type_is_repeated(); $is_price_per_person = $cruise_obj->get_is_price_per_person(); } if (isset($_POST['cabin_types_select'])) { $cabin_type_id = wp_kses($_POST['cabin_types_select'], ''); } else { if ($schedule_object) { $cabin_type_id = $schedule_object->cabin_type_id; } } if (!empty($cabin_type_id)) { $cabin_type_id = BYT_Theme_Utils::get_default_language_post_id($cabin_type_id, 'cabin_type'); } $cruises_select = '<select id="cruises_select" name="cruises_select">'; $cruises_select .= '<option value="">' . __('Select cruise', 'bookyourtravel') . '</option>'; $author_id = null; if (!is_super_admin()) { $author_id = get_current_user_id(); } $cruise_results = $byt_cruises_post_type->list_cruises(0, -1, 'title', 'ASC', 0, array(), array(), array(), false, $author_id); if (count($cruise_results) > 0 && $cruise_results['total'] > 0) { foreach ($cruise_results['results'] as $cruise_result) { global $post; $post = $cruise_result; setup_postdata($post); $cruises_select .= '<option value="' . $post->ID . '" ' . ($post->ID == $cruise_id ? 'selected' : '') . '>' . $post->post_title . '</option>'; } } $cruises_select .= '</select>'; $cabin_types_select = '<select class="normal" id="cabin_types_select" name="cabin_types_select">'; $cabin_types_select .= '<option value="">' . __('Select cabin type', 'bookyourtravel') . '</option>'; if ($cruise_obj) { $cabin_type_ids = $cruise_obj->get_cabin_types(); if ($cabin_type_ids && count($cabin_type_ids) > 0) { for ($i = 0; $i < count($cabin_type_ids); $i++) { $temp_id = $cabin_type_ids[$i]; $cabin_type_obj = new byt_cabin_type(intval($temp_id)); $cabin_types_select .= '<option value="' . $temp_id . '" ' . ($temp_id == $cabin_type_id ? 'selected' : '') . '>' . $cabin_type_obj->get_title() . '</option>'; } } } $cabin_types_select .= '</select>'; $start_date = null; if (isset($_POST['start_date'])) { $start_date = wp_kses($_POST['start_date'], ''); } else { if ($schedule_object != null) { $start_date = $schedule_object->start_date; } } if (isset($start_date)) { $start_date = date($this->date_format, strtotime($start_date)); } $duration_days = 0; if (isset($_POST['duration_days'])) { $duration_days = intval(wp_kses($_POST['duration_days'], '0')); } else { if ($schedule_object != null) { $duration_days = $schedule_object->duration_days; } } $cabin_count = 1; if (isset($_POST['cabin_count'])) { $cabin_count = intval(wp_kses($_POST['cabin_count'], '1')); } else { if ($schedule_object && isset($schedule_object->cabin_count)) { $cabin_count = $schedule_object->cabin_count; } } if ($cabin_count == 0) { $cabin_count = 1; } $price = 0; if (isset($_POST['price'])) { $price = floatval(wp_kses($_POST['price'], '2')); } else { if ($schedule_object != null) { $price = $schedule_object->price; } } $price_child = 0; if ($is_price_per_person) { if (isset($_POST['price_child'])) { $price_child = floatval(wp_kses($_POST['price_child'], '2')); } else { if ($schedule_object != null) { $price_child = $schedule_object->price_child; } } } $end_date = null; if (isset($_POST['end_date'])) { $end_date = wp_kses($_POST['end_date'], ''); } else { if ($schedule_object != null) { $end_date = $schedule_object->end_date; } } if (isset($end_date)) { $end_date = date($this->date_format, strtotime($end_date)); } if ($schedule_object) { echo '<h3>' . __('Update Cruise Schedule Entry', 'bookyourtravel') . '</h3>'; } else { echo '<h3>' . __('Add Cruise Schedule Entry', 'bookyourtravel') . '</h3>'; } echo '<form id="cruise_schedule_entry_form" method="post" action="' . esc_url($_SERVER['REQUEST_URI']) . '" style="clear: both;">'; echo wp_nonce_field('cruise_schedule_entry_form'); echo '<table cellpadding="3" class="form-table"><tbody>'; echo '<tr>'; echo ' <th scope="row" valign="top">' . __('Select cruise', 'bookyourtravel') . '</th>'; echo ' <td>' . $cruises_select . '</td>'; echo '</tr>'; echo '<tr>'; echo ' <th scope="row" valign="top">' . __('Select cabin type', 'bookyourtravel') . '</th>'; echo ' <td>' . $cabin_types_select . '</td>'; echo '</tr>'; echo '<tr id="cabin_count">'; echo ' <th scope="row" valign="top">' . __('Number of cabins available', 'bookyourtravel') . '</th>'; echo ' <td><input type="text" name="cabin_count" id="cabin_count" value="' . $cabin_count . '" /></td>'; echo '</tr>'; echo '<tr>'; echo ' <th scope="row" valign="top">' . __('Duration (days)', 'bookyourtravel') . '</th>'; echo ' <td><input type="text" name="duration_days" id="duration_days" value="' . $duration_days . '" /></td>'; echo '</tr>'; echo '<tr>'; echo ' <th scope="row" valign="top">' . __('Start date', 'bookyourtravel') . '</th>'; echo ' <td>'; echo ' <script>'; echo ' window.datepickerStartDateValue = "' . $start_date . '";'; echo ' </script>'; echo ' <input class="datepicker" type="text" name="datepicker_start_date" id="datepicker_start_date" />'; echo ' <input type="hidden" name="start_date" id="start_date" />'; echo ' </td>'; echo '</tr>'; echo '<tr class="is_repeated" ' . ($cruise_type_is_repeated ? '' : 'style="display:none"') . '>'; echo ' <th scope="row" valign="top">' . __('End date', 'bookyourtravel') . '</th>'; echo ' <td>'; echo ' <script>'; echo ' window.datepickerEndDateValue = "' . $end_date . '";'; echo ' </script>'; echo ' <input class="datepicker" type="text" name="datepicker_end_date" id="datepicker_end_date" />'; echo ' <input type="hidden" name="end_date" id="end_date" />'; echo ' </td>'; echo '</tr>'; echo '<tr>'; echo ' <th scope="row" valign="top">' . __('Price', 'bookyourtravel') . ' <span class="per_person" ' . ($is_price_per_person ? '' : 'style="display:none"') . '>' . __('per adult', 'bookyourtravel') . '</span> <span class="per_person" ' . (!$is_price_per_person ? '' : 'style="display:none"') . '>' . __('per cabin', 'bookyourtravel') . '</span></th>'; echo ' <td><input type="text" name="price" id="price" value="' . $price . '" /></td>'; echo '</tr>'; echo '<tr class="per_person" ' . ($is_price_per_person ? '' : 'style="display:none"') . '>'; echo ' <th scope="row" valign="top">' . __('Price per child', 'bookyourtravel') . '</th>'; echo ' <td><input type="text" name="price_child" id="price_child" value="' . $price_child . '" /></td>'; echo '</tr>'; echo '</table>'; echo '<p>'; echo '<a href="edit.php?post_type=cruise&page=theme_cruise_schedule_admin.php" class="button-secondary">' . __('Cancel', 'bookyourtravel') . '</a> '; if ($schedule_object) { echo '<input id="schedule_id" name="schedule_id" value="' . $edit . '" type="hidden" />'; echo '<input class="button-primary" type="submit" name="update" value="' . __('Update Cruise Schedule Entry', 'bookyourtravel') . '"/>'; } else { echo '<input class="button-primary" type="submit" name="insert" value="' . __('Add Cruise Schedule Entry', 'bookyourtravel') . '"/>'; } echo '</p>'; echo '</form>'; }
function render_entry_form() { global $byt_accommodations_post_type, $byt_room_types_post_type; $accommodation_id = 0; $is_self_catered = 0; $vacancy_object = null; $accommodation_obj = null; $is_price_per_person = 0; $edit = isset($_GET['edit']) ? absint($_GET['edit']) : ""; if (!empty($edit)) { $vacancy_object = $byt_accommodations_post_type->get_accommodation_vacancy($edit); } if (isset($_POST['accommodations_select'])) { $accommodation_id = wp_kses($_POST['accommodations_select'], ''); } else { if ($vacancy_object) { $accommodation_id = $vacancy_object->accommodation_id; } } if ($accommodation_id) { $accommodation_obj = new byt_accommodation(intval($accommodation_id)); $accommodation_id = $accommodation_obj->get_base_id(); $is_self_catered = $accommodation_obj->get_is_self_catered(); $is_price_per_person = $accommodation_obj->get_is_price_per_person(); } $room_type_id = 0; if (isset($_POST['room_types_select'])) { $room_type_id = wp_kses($_POST['room_types_select'], ''); } else { if ($vacancy_object) { $room_type_id = $vacancy_object->room_type_id; } } if (!empty($room_type_id)) { $room_type_id = BYT_Theme_Utils::get_default_language_post_id($room_type_id, 'room_type'); } $accommodations_select = '<select id="accommodations_select" name="accommodations_select">'; $accommodations_select .= '<option value="">' . __('Select accommodation', 'bookyourtravel') . '</option>'; $author_id = null; if (!is_super_admin()) { $author_id = get_current_user_id(); } $accommodation_results = $byt_accommodations_post_type->list_accommodations(0, -1, 'title', 'ASC', 0, array(), array(), array(), false, null, $author_id); if (count($accommodation_results) > 0 && $accommodation_results['total'] > 0) { foreach ($accommodation_results['results'] as $accommodation_result) { global $post; $post = $accommodation_result; setup_postdata($post); $accommodations_select .= '<option value="' . $post->ID . '" ' . ($post->ID == $accommodation_id ? 'selected' : '') . '>' . $post->post_title . '</option>'; } } $accommodations_select .= '</select>'; $room_types_select = ''; if (!$is_self_catered) { $room_types_select = '<select class="normal" id="room_types_select" name="room_types_select">'; $room_types_select .= '<option value="">' . __('Select room type', 'bookyourtravel') . '</option>'; if ($accommodation_obj) { $room_type_ids = $accommodation_obj->get_room_types(); if ($room_type_ids && count($room_type_ids) > 0) { for ($i = 0; $i < count($room_type_ids); $i++) { $temp_id = $room_type_ids[$i]; $room_type_obj = new byt_room_type(intval($temp_id)); $room_types_select .= '<option value="' . $temp_id . '" ' . ($temp_id == $room_type_id ? 'selected' : '') . '>' . $room_type_obj->get_title() . '</option>'; } } } $room_types_select .= '</select>'; } wp_reset_postdata(); $date_from = null; if (isset($_POST['date_from'])) { $date_from = wp_kses($_POST['date_from'], ''); } else { if ($vacancy_object) { $date_from = $vacancy_object->start_date; } } if (isset($date_from)) { $date_from = date($this->date_format, strtotime($date_from)); } $date_to = null; if (isset($_POST['date_to'])) { $date_to = wp_kses($_POST['date_to'], ''); } else { if ($vacancy_object) { $date_to = $vacancy_object->end_date; } } if (isset($date_to)) { $date_to = date($this->date_format, strtotime($date_to)); } $room_count = 1; if (isset($_POST['room_count'])) { $room_count = intval(wp_kses($_POST['room_count'], '')); } else { if ($vacancy_object && isset($vacancy_object->room_count)) { $room_count = $vacancy_object->room_count; } } if ($room_count == 0) { $room_count = 1; } $price_per_day = 0; if (isset($_POST['price_per_day'])) { $price_per_day = floatval(wp_kses($_POST['price_per_day'], '')); } else { if ($vacancy_object) { $price_per_day = $vacancy_object->price_per_day; } } $price_per_day_child = 0; if (isset($_POST['price_per_day_child'])) { $price_per_day_child = floatval(wp_kses($_POST['price_per_day_child'], '')); } else { if ($vacancy_object) { $price_per_day_child = $vacancy_object->price_per_day_child; } } $season_name = ''; if (isset($_POST['season_name'])) { $season_name = stripslashes(wp_kses($_POST['season_name'], '')); } else { if ($vacancy_object) { $season_name = stripslashes($vacancy_object->season_name); } } if ($vacancy_object) { echo '<h3>' . __('Update Vacancy', 'bookyourtravel') . '</h3>'; } else { echo '<h3>' . __('Add Vacancy', 'bookyourtravel') . '</h3>'; } echo '<form id="accommodation_vacancy_form" method="post" action="' . esc_url($_SERVER['REQUEST_URI']) . '" style="clear: both;">'; echo wp_nonce_field('accommodation_vacancy_nonce'); echo '<table cellpadding="3" class="form-table"><tbody>'; echo '<tr>'; echo ' <th scope="row" valign="top">' . __('Season name', 'bookyourtravel') . '</th>'; echo ' <td><input type="text" name="season_name" id="season_name" value="' . $season_name . '" /></td>'; echo '</tr>'; echo '<tr>'; echo ' <th scope="row" valign="top">' . __('Select accommodation', 'bookyourtravel') . '</th>'; echo ' <td>' . $accommodations_select . '</td>'; echo '</tr>'; if (!$is_self_catered) { echo '<tr id="room_types_row">'; echo ' <th scope="row" valign="top">' . __('Select room type', 'bookyourtravel') . '</th>'; echo ' <td>' . $room_types_select . '</td>'; echo '</tr>'; echo '<tr id="room_count_row">'; echo ' <th scope="row" valign="top">' . __('Number of rooms', 'bookyourtravel') . '</th>'; echo ' <td><input type="text" name="room_count" id="room_count" value="' . $room_count . '" /></td>'; echo '</tr>'; } echo '<tr>'; echo ' <th scope="row" valign="top">' . __('Date from', 'bookyourtravel') . '</th>'; echo ' <td>'; echo ' <script>'; echo ' window.datepickerDateFromValue = "' . $date_from . '";'; echo ' </script>'; echo ' <input class="datepicker" type="text" name="datepicker_date_from" id="datepicker_date_from" />'; echo ' <input type="hidden" name="date_from" id="date_from" />'; echo ' </td>'; echo '</tr>'; echo '<tr>'; echo ' <th scope="row" valign="top">' . __('Date to', 'bookyourtravel') . '</th>'; echo ' <td>'; echo ' <script>'; echo ' window.datepickerDateToValue = "' . $date_to . '";'; echo ' </script>'; echo ' <input class="datepicker" type="text" name="datepicker_date_to" id="datepicker_date_to" />'; echo ' <input type="hidden" name="date_to" id="date_to" />'; echo ' </td>'; echo '</tr>'; echo '<tr>'; echo ' <th scope="row" valign="top">' . __('Price per day', 'bookyourtravel') . ' <span class="per_person" ' . ($is_price_per_person ? '' : 'style="display:none"') . '>' . __('(adult)', 'bookyourtravel') . '</span></th>'; echo ' <td><input type="text" name="price_per_day" id="price_per_day" value="' . $price_per_day . '" /></td>'; echo '</tr>'; echo '<tr class="per_person" ' . ($is_price_per_person ? '' : 'style="display:none"') . '>'; echo ' <th scope="row" valign="top">' . __('Price per day (child)', 'bookyourtravel') . '</th>'; echo ' <td><input type="text" name="price_per_day_child" id="price_per_day_child" value="' . $price_per_day_child . '" /></td>'; echo '</tr>'; echo '</table>'; echo '<p>'; echo '<a href="edit.php?post_type=accommodation&page=theme_accommodation_vacancy_admin.php" class="button-secondary">' . __('Cancel', 'bookyourtravel') . '</a> '; if ($vacancy_object) { echo '<input id="vacancy_id" name="vacancy_id" value="' . $edit . '" type="hidden" />'; echo '<input class="button-primary" type="submit" name="update" value="' . __('Update Vacancy', 'bookyourtravel') . '"/>'; } else { echo '<input class="button-primary" type="submit" name="insert" value="' . __('Add Vacancy', 'bookyourtravel') . '"/>'; } echo '</p>'; echo '</form>'; }