Ejemplo n.º 1
0
 static function _hotelValidate($check_in, $check_out, $adult_num, $child_num, $number_room)
 {
     $cant_book = array();
     $hotels = HotelHelper::_getAllHotelID();
     if (is_array($hotels) && count($hotels)) {
         foreach ($hotels as $hotel) {
             $total_room = HotelHelper::_getTotalRoom($hotel);
             $room_cant_book = HotelHelper::_hotelValidateByID($hotel, strtotime($check_in), strtotime($check_out), $adult_num, $child_num, $number_room);
             $total_room_cant_book = count($room_cant_book);
             if ($total_room <= $total_room_cant_book) {
                 $cant_book[] = $hotel;
             }
         }
     }
     return $cant_book;
 }
Ejemplo n.º 2
0
 function change_search_hotel_arg($query)
 {
     if (is_admin() and empty($_REQUEST['is_search_map'])) {
         return $query;
     }
     $post_type = get_query_var('post_type');
     $posts_per_page = st()->get_option('hotel_posts_per_page', 12);
     if ($query->is_search && $post_type == 'st_hotel') {
         add_filter('posts_join', array($this, '_get_join_query'));
         add_filter('posts_where', array($this, '_get_where_query'));
         if (STInput::get('item_name')) {
             $query->set('s', STInput::get('item_name'));
         }
         if (empty($_REQUEST['s'])) {
             $query->set('posts_per_page', $posts_per_page);
         }
         $tax = STInput::request('taxonomy');
         if (!empty($tax) and is_array($tax)) {
             $tax_query = array();
             foreach ($tax as $key => $value) {
                 if ($value) {
                     $value = explode(',', $value);
                     if (!empty($value) and is_array($value)) {
                         foreach ($value as $k => $v) {
                             if (!empty($v)) {
                                 $ids[] = $v;
                             }
                         }
                     }
                     if (!empty($ids)) {
                         $tax_query[] = array('taxonomy' => $key, 'terms' => $ids, 'operator' => 'AND');
                     }
                     $ids = array();
                 }
             }
             $query->set('tax_query', $tax_query);
         }
         $is_featured = st()->get_option('is_featured_search_hotel', 'off');
         if (!empty($is_featured) and $is_featured == 'on') {
             $query->set('meta_key', 'is_featured');
             $query->set('orderby', 'meta_value');
             $query->set('order', 'DESC');
         }
         if ($orderby = STInput::get('orderby')) {
             $hotels = HotelHelper::_getAllHotelID();
             if (count($hotels)) {
                 foreach ($hotels as $hotel) {
                     $price = HotelHelper::get_minimum_price_hotel($hotel);
                     update_post_meta($hotel, 'st_price_now', $price);
                 }
             }
             switch ($orderby) {
                 case "price_asc":
                     $query->set('meta_key', 'st_price_now');
                     $query->set('orderby', 'meta_value_num');
                     $query->set('order', 'asc');
                     break;
                 case "price_desc":
                     $query->set('meta_key', 'st_price_now');
                     $query->set('orderby', 'meta_value_num');
                     $query->set('order', 'desc');
                     break;
                 case "avg_rate":
                     $query->set('meta_key', 'rate_review');
                     $query->set('orderby', 'meta_value_num');
                     $query->set('order', 'desc');
                     break;
                 case "name_asc":
                     $query->set('orderby', 'title');
                     $query->set('order', 'asc');
                     break;
                 case "name_desc":
                     $query->set('orderby', 'title');
                     $query->set('order', 'desc');
                     break;
             }
         } else {
             //Default Sorting
             $query->set('orderby', 'modified');
             $query->set('order', 'desc');
         }
         if (!empty($meta_query)) {
             $query->set('meta_query', $meta_query);
         }
     } else {
         remove_filter('posts_where', array($this, '_get_where_query'));
     }
     return $query;
 }