* @package WordPress
 * @subpackage Traveler
 * @since 1.0
 *
 * hotel cart item html
 *
 * Created by ShineTheme
 *
 */
if (isset($item_id) and $item_id) {
    $item = STCart::find_item($item_id);
    $hotel = $item_id;
    $room_id = $item['data']['room_id'];
    $check_in = strtotime($item['data']['check_in']);
    $check_out = strtotime($item['data']['check_out']);
    $date_diff = STDate::date_diff($check_in, $check_out);
    $data_price = $item['data']['data_price'];
    $data_price = str_ireplace("\\", '', $data_price);
    $data_price = unserialize($data_price);
    $info_price = $data_price['info_price'];
    $info_price = TravelerObject::st_conver_info_price($info_price);
    ?>
    <header class="clearfix">
        <?php 
    if (get_post_status($hotel)) {
        ?>
        <a class="booking-item-payment-img" href="#">
            <?php 
        echo get_the_post_thumbnail($hotel, array(98, 74, 'bfi_thumb' => true));
        ?>
        </a>
示例#2
0
 /**
  * @since 1.1.0
  **/
 function add_to_cart()
 {
     if (STInput::request('action') == 'rental_add_cart') {
         if (!STInput::request('start') or !STInput::request('end')) {
             STTemplate::set_message(st_get_language('check_in_and_check_out_are_required'), 'danger');
             return;
         }
         $today = strtotime(date('m/d/Y'));
         $check_in = TravelHelper::convertDateFormat(STInput::request('start'));
         $rental_id = STInput::request('item_id');
         $booking_period = get_post_meta($rental_id, 'rentals_booking_period', true);
         $period = STDate::date_diff($today, $check_in);
         if ($booking_period && $period < $booking_period) {
             STTemplate::set_message(sprintf(__('Booking is only accepted %d day(s) before today.', ST_TEXTDOMAIN), $booking_period), 'danger');
             return;
         }
         $adult = intval(STInput::request('adult'));
         $children = intval(STInput::request('children'));
         if (get_post_meta($rental_id, 'rental_max_adult', true)) {
             $max_adult = intval(get_post_meta($rental_id, 'rental_max_adult', true));
             if ($adult > $max_adult) {
                 STTemplate::set_message(sprintf(__('A maximum number of adult(s): %d', ST_TEXTDOMAIN), $max_adult), 'danger');
                 return;
             }
         }
         if (get_post_meta($rental_id, 'rental_max_children', true)) {
             $max_children = intval(get_post_meta($rental_id, 'rental_max_children', true));
             if ($children > $max_children) {
                 STTemplate::set_message(sprintf(__('A maximum number of children: %d', ST_TEXTDOMAIN), $max_children), 'danger');
                 return;
             }
         }
         $validate = $this->do_add_to_cart(array('item_id' => STInput::request('item_id'), 'number_room' => STInput::request('number_room'), 'price' => STInput::request('price'), 'start' => TravelHelper::convertDateFormat(STInput::request('start')), 'end' => TravelHelper::convertDateFormat(STInput::request('end')), 'adult' => STInput::request('adult'), 'children' => STInput::request('children')));
         if ($validate) {
             $link = STCart::get_cart_link();
             wp_safe_redirect($link);
             die;
         }
     }
 }
示例#3
0
echo esc_html($title);
?>
',
                animate: true,
                seriesDefaults: {
                    pointLabels: {show: true},
                    <?php 
if ($type == 'quarter') {
    ?>
                    renderer: $.jqplot.BarRenderer,
                    <?php 
} elseif ($type == 'year' and STInput::request('year_end') - STInput::request('year_start') < 4) {
    ?>
                    renderer: $.jqplot.BarRenderer,
                    <?php 
} elseif ($type == 'custom_date' and $number_days = STDate::date_diff(strtotime(STInput::request('date_start')), strtotime(STInput::request('date_end'))) <= 7) {
    ?>
                    renderer: $.jqplot.BarRenderer,
                    <?php 
}
?>
                    rendererOptions: {fillToZero: true}
                },
                legend: {
                    show: true,
                    placement: 'insideGrid'
                },
                series: data_lable,
                axes: {
                    xaxis: {
                        renderer: $.jqplot.CategoryAxisRenderer,
示例#4
0
 function is_booking_period($item_id = '', $t = '', $c = '')
 {
     $today = strtotime($t);
     $check_in = strtotime($c);
     $booking_period = intval(get_post_meta($item_id, 'hotel_booking_period', TRUE));
     $period = STDate::date_diff($today, $check_in);
     if ($period < $booking_period) {
         return $booking_period;
     }
     return FALSE;
 }
示例#5
0
 static function get_default_info_reports($type, $date_start = false, $date_end = false)
 {
     $data = array('post_type' => array('st_hotel' => array('ids' => array(), 'number_orders' => 0, 'number_items' => 0, 'average_total' => 0, 'date' => array()), 'st_rental' => array('ids' => array(), 'number_orders' => 0, 'number_items' => 0, 'average_total' => 0, 'date' => array()), 'st_cars' => array('ids' => array(), 'number_orders' => 0, 'number_items' => 0, 'average_total' => 0, 'date' => array()), 'st_activity' => array('ids' => array(), 'number_orders' => 0, 'number_items' => 0, 'average_total' => 0, 'date' => array()), 'st_tours' => array('ids' => array(), 'number_orders' => 0, 'number_items' => 0, 'average_total' => 0, 'date' => array())), 'number_orders' => 0, 'number_items' => 0, 'average_total' => 0, 'average_daily_sale' => 0);
     $list_partner = st()->get_option('list_partner');
     $array_partner = array();
     if (!empty($list_partner)) {
         foreach ($list_partner as $key => $value) {
             $id = 'st_' . $value['id_partner'];
             if ($value['id_partner'] == 'car' or $value['id_partner'] == 'tour') {
                 $id = 'st_' . $value['id_partner'] . 's';
             }
             $array_partner[$id] = $value['title'];
         }
     }
     foreach ($data['post_type'] as $k => $v) {
         if (isset($array_partner[$k])) {
             if ($type != '15days' and $type != 'custom_date') {
                 // add 12 month
                 for ($i = 1; $i <= 12; $i++) {
                     $data['post_type'][$k]['date'][$i] = array('number_order' => 0, 'number_items' => 0, 'average_total' => 0);
                     // add day
                     if ($i == 2) {
                         $day = 28;
                     } else {
                         $day = 31;
                     }
                     for ($j = 1; $j <= $day; $j++) {
                         $data['post_type'][$k]['date'][$i]['day'][$j] = array('number_order' => 0, 'number_items' => 0, 'average_total' => 0);
                     }
                 }
             } else {
                 $number_days = STDate::date_diff(strtotime($date_start), strtotime($date_end));
                 for ($i = 0; $i <= $number_days; $i++) {
                     $next_day = date('m-d-Y', strtotime($date_start . "+" . $i . " days"));
                     if (empty($data['post_type'][$k]['date'][$next_day])) {
                         $data['post_type'][$k]['date'][$next_day] = array('number_orders' => 0, 'number_items' => 0, 'average_total' => 0);
                     }
                 }
             }
         } else {
             unset($data['post_type'][$k]);
         }
     }
     return $data;
 }
 * hotel payment item row
 *
 * Created by ShineTheme
 *
 */
$order_token_code = STInput::get('order_token_code');
if ($order_token_code) {
    $order_code = STOrder::get_order_id_by_token($order_token_code);
}
$hotel_id = $key;
$object_id = $key;
$total = 0;
$room_id = $data['data']['room_id'];
$check_in = $data['data']['check_in'];
$check_out = $data['data']['check_out'];
$datediff = STDate::date_diff(strtotime($check_in), strtotime($check_out));
$number = $data['number'];
$price = $data['price'];
if (!$number) {
    $number = 1;
}
/*if($datediff>=1)
{
    $total+= ($price)*$datediff*$number;
}else{
    $total+= $price*$number;
}*/
$hotel_link = '';
if (isset($hotel_id) and $hotel_id) {
    $hotel_link = get_permalink($hotel_id);
}
示例#7
0
 function do_add_to_cart()
 {
     $pass_validate = true;
     $item_id = STInput::request('item_id');
     $number = STInput::request('number');
     $discount = STInput::request('discount');
     $price = STInput::request('price');
     if (!empty($discount)) {
         $price_sale = $price - $price * ($discount / 100);
         $data = array('discount' => $discount, 'price_sale' => $price_sale);
     }
     $data['check_in'] = STInput::request('check_in');
     $data['check_out'] = STInput::request('check_out');
     $data['type_tour'] = STInput::request('type_tour');
     $data['type_price'] = STInput::request('type_price');
     if ($data['type_price'] == 'people_price') {
         $prices = self::get_price_person($item_id);
         $data['adult_price'] = $prices['adult'];
         $data['child_price'] = $prices['child'];
         $data['discount'] = $prices['discount'];
         $data['adult_number'] = STInput::request('adult_number', 1);
         $data['child_number'] = STInput::request('children_number', 0);
     }
     $data['duration'] = STInput::request('duration');
     $type_tour = STInput::request('type_tour');
     $today = strtotime(date('m/d/Y', time()));
     if ($type_tour == 'daily_tour') {
         $check_in = strtotime(TravelHelper::convertDateFormat(STInput::request('check_in')));
     } else {
         $check_in = strtotime(get_post_meta($item_id, 'check_in', true));
     }
     $booking_period = intval(get_post_meta($item_id, 'tours_booking_period', true));
     $period = STDate::date_diff($today, $check_in);
     $expired = $check_in - $today;
     if ($type_tour == 'daily_tour') {
         if ($booking_period && $period < $booking_period) {
             STTemplate::set_message(sprintf(__('Booking is only accepted %d day(s) before today.', ST_TEXTDOMAIN), $booking_period), 'danger');
             return;
         }
     } else {
         if ($expired < 0) {
             STTemplate::set_message(__('This tour has expired', ST_TEXTDOMAIN), 'danger');
             $pass_validate = false;
             return;
         }
     }
     if ($pass_validate) {
         $pass_validate = apply_filters('st_tour_add_cart_validate', $pass_validate, $data);
     }
     if ($pass_validate) {
         STCart::add_cart($item_id, $number, $price, $data);
     }
     return $pass_validate;
 }
示例#8
0
 /**
  * @since 1.0.9
  * @update 1.1.3
  **/
 function do_add_to_cart()
 {
     $pass_validate = true;
     $data_price_cars = json_decode(str_ireplace("\\", '', STInput::request('data_price_cars')));
     $data_price_items = json_decode(str_ireplace("\\", '', STInput::request('data_price_items')));
     $selected_equipments = json_decode(str_ireplace("\\", '', STInput::request('selected_equipments')));
     $discount = STInput::request('discount');
     $price_unit = STInput::request('price');
     $price_old = STInput::request('price_old');
     $item_id = STInput::request('item_id');
     $number = 1;
     $price_total = STInput::request('data_price_total');
     $check_in = $data_price_cars->date_time->pick_up_date . ' ' . $data_price_cars->date_time->pick_up_time;
     $check_in = date('Y-m-d H:i:s', strtotime($check_in));
     $check_out = $data_price_cars->date_time->drop_off_date . ' ' . $data_price_cars->date_time->drop_off_time;
     $check_out = date('Y-m-d H:i:s', strtotime($check_out));
     $data = array('data_price_cars' => $data_price_cars, 'data_price_items' => $data_price_items, 'discount' => $discount, 'price_old' => $price_old, 'check_in' => STInput::request('check_in'), 'check_in_timestamp' => STInput::request('check_in_timestamp'), 'check_out' => STInput::request('check_out'), 'check_out_timestamp' => STInput::request('check_out_timestamp'), 'price_total' => $price_total, 'price_unit' => self::get_price_unit(), 'selected_equipments' => $selected_equipments);
     // Validate required field
     $change_location_date_box = $this->get_search_fields_box();
     $field_types = $this->get_search_fields_name();
     if (!empty($change_location_date_box)) {
         $message = '';
         foreach ($change_location_date_box as $key => $value) {
             if (isset($field_types[$value['field_atrribute']]) and $value['is_required'] == 'on') {
                 $field_name = isset($field_types[$value['field_atrribute']]['field_name']) ? $field_types[$value['field_atrribute']]['field_name'] : false;
                 if ($field_name) {
                     if (is_array($field_name)) {
                         foreach ($field_name as $v) {
                             if (!STInput::request($v)) {
                                 $message .= sprintf(__('%s is required', ST_TEXTDOMAIN), $value['title']) . '<br>';
                                 $pass_validate = false;
                             }
                         }
                     } elseif (is_string($field_name)) {
                         if (!STInput::request($field_name)) {
                             $message .= sprintf(__('%s is required', ST_TEXTDOMAIN), $value['title']) . '<br>';
                             $pass_validate = false;
                         }
                     }
                 }
             }
         }
         if ($message) {
             $message = substr($message, 0, -4);
             STTemplate::set_message($message, 'danger');
         }
     }
     $is_required_country = st()->get_option('is_required_country', 'off');
     if ($is_required_country == 'on') {
         if (STInput::request('county_pick_up') != STInput::request('county_drop_off') or !STInput::request('county_drop_off') or !STInput::request('county_pick_up')) {
             STTemplate::set_message(__('Pick-up and Drop-off are not in the same country. Please re-check it.', ST_TEXTDOMAIN), 'danger');
             $pass_validate = false;
         }
     }
     $today = strtotime(date('m/d/Y', time()));
     $check_in_unix = strtotime(TravelHelper::convertDateFormat($data_price_cars->date_time->pick_up_date));
     $booking_period = intval(get_post_meta($item_id, 'cars_booking_period', true));
     $period = STDate::date_diff($today, $check_in_unix);
     $var = $check_in_unix - $today;
     if ($var < 0) {
         STTemplate::set_message(__('You can not set check-in date in the past'), 'danger');
         $pass_validate = false;
     } else {
         if ($booking_period && $period < $booking_period) {
             STTemplate::set_message(sprintf(__('Booking is only accepted %d day(s) before today.', ST_TEXTDOMAIN), $booking_period), 'danger');
             $pass_validate = false;
         }
     }
     if (!$this->_is_slot_available($item_id, $check_in, $check_out)) {
         STTemplate::set_message(__('Sorry! This Car is not available.', ST_TEXTDOMAIN), 'danger');
         $pass_validate = false;
     }
     //if($pickup)
     // Allow to be filtered
     $pass_validate = apply_filters('st_car_add_cart_validate', $pass_validate, $item_id, $number, $price_unit, $data);
     if ($pass_validate) {
         STCart::add_cart($item_id, $number, $price_unit, $data);
     }
     return $pass_validate;
 }
示例#9
0
 /**
  *
  *
  * */
 static function get_hotel_price($data, $price, $number = 1)
 {
     $default = array('check_in' => false, 'check_out' => false);
     extract(wp_parse_args($data, $default));
     //Check datediff and price per date
     if ($check_in and $check_out) {
         $datediff = STDate::date_diff(strtotime($check_in), strtotime($check_out));
         if ($datediff >= 1) {
             return $price * $datediff * $number;
         } else {
             return $price * $number;
         }
     } else {
         return $price * $number;
     }
 }
示例#10
0
 function ajax_search_room()
 {
     if (st_is_ajax() and STInput::post('room_search')) {
         if (!wp_verify_nonce(STInput::post('room_search'), 'room_search')) {
             $result = array('status' => 0, 'data' => "");
             echo json_encode($result);
             die;
         }
         $result = array('status' => 1, 'data' => "");
         $hotel_id = get_the_ID();
         $post = STInput::request();
         $post['room_parent'] = $hotel_id;
         //Check Date
         $today = date('m/d/Y');
         $check_in = strtotime(TravelHelper::convertDateFormat($post['start']));
         $check_out = strtotime(TravelHelper::convertDateFormat($post['end']));
         $date_diff = STDate::date_diff($check_in, $check_out);
         $booking_period = $this->is_booking_period($hotel_id, $today, $post['start']);
         if ($booking_period) {
             $result = array('status' => 0, 'data' => st()->load_template('hotel/elements/loop-room-none'), 'message' => sprintf(__('Booking is only accepted %d day(s) before today.', ST_TEXTDOMAIN), $booking_period));
             echo json_encode($result);
             die;
         }
         if ($date_diff < 1) {
             $result = array('status' => 0, 'data' => "", 'message' => __('Make sure your check-out date is at least 1 day after check-in.', ST_TEXTDOMAIN), 'more-data' => $date_diff);
             echo json_encode($result);
             die;
         }
         query_posts($this->search_room($post));
         $post['check_in'] = date('d-m-Y', strtotime($post['start']));
         $post['check_out'] = date('d-m-Y', strtotime($post['end']));
         global $wp_query;
         if (have_posts()) {
             while (have_posts()) {
                 the_post();
                 $result['data'] .= st()->load_template('hotel/elements/loop-room-item');
             }
         } else {
             $result['data'] .= st()->load_template('hotel/elements/loop-room-none');
         }
         wp_reset_query();
         echo json_encode($result);
         die;
     }
 }