Esempio n. 1
0
<?php

global $post, $tour_class, $display_mode, $byt_theme_globals, $byt_tours_post_type, $byt_reviews_post_type;
$tour_id = $post->ID;
$tour_obj = new byt_tour($post);
$base_id = $tour_obj->get_base_id();
$reviews_total = $byt_reviews_post_type->get_reviews_count($base_id);
$price_decimal_places = $byt_theme_globals->get_price_decimal_places();
$default_currency_symbol = $byt_theme_globals->get_default_currency_symbol();
$show_currency_symbol_after = $byt_theme_globals->show_currency_symbol_after();
$tour_image = $tour_obj->get_main_image();
if (empty($tour_image)) {
    $tour_image = BYT_Theme_Utils::get_file_uri('/images/uploads/img.jpg');
}
$is_price_per_group = $tour_obj->get_is_price_per_group();
$score_out_of_10 = 0;
if ($reviews_total > 0) {
    $review_score = $tour_obj->get_custom_field('review_score', false);
    $score_out_of_10 = round($review_score * 10);
}
$tour_description_html = BYT_Theme_Utils::strip_tags_and_shorten($tour_obj->get_description(), 100) . '<a href="' . $tour_obj->get_permalink() . '">' . __('More info', 'bookyourtravel') . '</a>';
$current_date = date('Y-m-d', time());
$tour_min_price = $byt_tours_post_type->get_tour_min_price($tour_id, $current_date);
$tour_location = $tour_obj->get_location();
$tour_location_title = '';
if ($tour_location) {
    $tour_location_title = $tour_location->get_title();
}
if (empty($display_mode) || $display_mode == 'card') {
    ?>
<!--tour item-->
 function get_tour_min_price($tour_id, $date = null)
 {
     global $wpdb;
     $tour_obj = new byt_tour(intval($tour_id));
     $tour_id = $tour_obj->get_base_id();
     if (!isset($date)) {
         $date = date('Y-m-d', time());
     }
     $table_name_schedule = BOOKYOURTRAVEL_TOUR_SCHEDULE_TABLE;
     $sql = "SELECT MIN(schedule.price) \n\t\t\t\tFROM {$table_name_schedule} schedule \n\t\t\t\tWHERE tour_id=%d ";
     if ($tour_obj->get_type_is_repeated() == 0) {
         // this tour is a one off and is not repeated. If start date is missed, person cannot participate.
         $sql .= $wpdb->prepare(" AND start_date > %s ", $date);
     } else {
         // daily, weekly, weekdays tours are recurring which means start date is important only in the sense that tour needs to have become valid before we can get min price.
     }
     $sql = $wpdb->prepare($sql, $tour_id);
     $min_price = $wpdb->get_var($sql);
     if (!$min_price) {
         $min_price = 0;
     }
     $this->sync_tour_min_price($tour_id, $min_price);
     return $min_price;
 }
Esempio n. 3
0
 function render_entry_form()
 {
     global $byt_tours_post_type;
     $tour_id = 0;
     $schedule_object = null;
     $tour_obj = null;
     $is_price_per_group = 0;
     $tour_type_is_repeated = 0;
     // on-off tour by default
     $edit = isset($_GET['edit']) ? absint($_GET['edit']) : "";
     if (!empty($edit)) {
         $schedule_object = $byt_tours_post_type->get_tour_schedule($edit);
     }
     if (isset($_POST['tours_select'])) {
         $tour_id = wp_kses($_POST['tours_select'], '');
     } else {
         if ($schedule_object != null) {
             $tour_id = $schedule_object->tour_id;
         }
     }
     if ($tour_id) {
         $tour_obj = new byt_tour(intval($tour_id));
         $tour_id = $tour_obj->get_base_id();
         $is_price_per_group = $tour_obj->get_is_price_per_group();
         $tour_type_is_repeated = $tour_obj->get_type_is_repeated();
     }
     $tours_select = '<select id="tours_select" name="tours_select">';
     $tours_select .= '<option value="">' . __('Select tour', 'bookyourtravel') . '</option>';
     $author_id = null;
     if (!is_super_admin()) {
         $author_id = get_current_user_id();
     }
     $tour_results = $byt_tours_post_type->list_tours(0, -1, 'title', 'ASC', 0, array(), array(), array(), false, $author_id);
     if (count($tour_results) > 0 && $tour_results['total'] > 0) {
         foreach ($tour_results['results'] as $tour_result) {
             global $post;
             $post = $tour_result;
             setup_postdata($post);
             $tours_select .= '<option value="' . $post->ID . '" ' . ($post->ID == $tour_id ? 'selected' : '') . '>' . $post->post_title . '</option>';
         }
     }
     $tours_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));
     }
     $max_people = 0;
     if (isset($_POST['max_people'])) {
         $max_people = intval(wp_kses($_POST['max_people'], '0'));
     } else {
         if ($schedule_object != null) {
             $max_people = $schedule_object->max_people;
         }
     }
     $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;
         }
     }
     $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_group) {
         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 Tour Schedule Entry', 'bookyourtravel') . '</h3>';
     } else {
         echo '<h3>' . __('Add Tour Schedule Entry', 'bookyourtravel') . '</h3>';
     }
     echo '<form id="tour_schedule_entry_form" method="post" action="' . esc_url($_SERVER['REQUEST_URI']) . '" style="clear: both;">';
     echo wp_nonce_field('tour_schedule_entry_form');
     echo '<table cellpadding="3" class="form-table"><tbody>';
     echo '<tr>';
     echo '	<th scope="row" valign="top">' . __('Select tour', 'bookyourtravel') . '</th>';
     echo '	<td>' . $tours_select . '</td>';
     echo '</tr>';
     echo '<tr>';
     echo '	<th scope="row" valign="top">' . __('Max number of people', 'bookyourtravel') . '</th>';
     echo '	<td><input type="text" name="max_people" id="max_people" value="' . $max_people . '" /></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" ' . ($tour_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_group ? '' : 'style="display:none"') . '>' . __('per adult', 'bookyourtravel') . '</span> <span class="per_group" ' . ($is_price_per_group ? '' : 'style="display:none"') . '>' . __('per group', '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_group ? '' : '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=tour&page=theme_tour_schedule_admin.php" class="button-secondary">' . __('Cancel', 'bookyourtravel') . '</a>&nbsp;';
     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 Tour Schedule Entry', 'bookyourtravel') . '"/>';
     } else {
         echo '<input class="button-primary" type="submit" name="insert" value="' . __('Add Tour Schedule Entry', 'bookyourtravel') . '"/>';
     }
     echo '</p>';
     echo '</form>';
 }