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