Function Reference: geodir_event_loop_filter_where
Summary
This function has not been documented yet.
Filters
‘geodir_event_listing_filter_where’ [Line: 527]
Source File
geodir_event_loop_filter_where() is located in geodir_event_manager/gdevents_functions.php [Line: 458]
Source Code
function geodir_event_loop_filter_where($where) { global $wp_query,$query,$wpdb,$geodir_post_type,$table,$condition_date; $condition = ''; $current_date = date_i18n('Y-m-d'); if ( get_query_var( 'event_related_id' ) ) { if ( get_query_var( 'geodir_event_type' ) == 'feature' ) { $condition = " ( event_date >= '" . $current_date . "' OR ( event_date <= '" . $current_date . "' AND event_enddate >= '" . $current_date . "' ) ) "; } if ( get_query_var( 'geodir_event_type' ) == 'past' ) { $condition = " event_date <= '" . $current_date . "' "; } if ( get_query_var( 'geodir_event_type' ) == 'upcoming' ) { $condition = " ( event_date >= '" . $current_date . "' OR ( event_date <= '" . $current_date . "' AND event_enddate >= '" . $current_date . "' ) ) "; } $where .= " AND " . $table . ".geodir_link_business = " . get_query_var( 'event_related_id' ); } if (get_query_var('geodir_event_date_calendar')) { $current_year = date_i18n('Y', get_query_var('geodir_event_date_calendar')); $current_month = date_i18n('m', get_query_var('geodir_event_date_calendar')); //$condition = " YEAR(event_date) = ".$current_year." AND MONTH(event_date) = ".$current_month." "; $month_start = $current_year . '-' . $current_month . '-01'; // First day of month. $month_end = date_i18n( 'Y-m-t', strtotime( $month_start ) ); // Get last day of month. $condition = "( ( ( '" . $month_start . "' BETWEEN event_date AND event_enddate ) OR ( event_date BETWEEN '" . $month_start . "' AND event_enddate ) ) AND ( ( '" . $month_end . "' BETWEEN event_date AND event_enddate ) OR ( event_enddate BETWEEN event_date AND '" . $month_end . "' ) ) )"; } if ($condition) { $find_postids = $wpdb->get_var("SELECT GROUP_CONCAT( DISTINCT event_id SEPARATOR "','") as event_ids FROM ".EVENT_SCHEDULE." WHERE ".$condition); $event_ids = "'".$find_postids."'"; if (get_query_var('geodir_event_date_calendar')) { $where .= " AND $wpdb->posts.ID IN ($event_ids)"; } else { $where .= " AND $wpdb->posts.ID IN ($event_ids)"; } } // for dashboard listing $is_geodir_dashbord = isset($_REQUEST['geodir_dashbord']) && $_REQUEST['geodir_dashbord'] ? true : false; if ( ( is_main_query() && $geodir_post_type == 'gd_event' && (geodir_is_page('listing') || is_search() || $is_geodir_dashbord) ) || get_query_var('geodir_event_listing_filter')) { $filter = isset($_REQUEST['etype']) ? $_REQUEST['etype'] : ''; if($filter == '') $filter = get_option('geodir_event_defalt_filter'); if(get_query_var('geodir_event_listing_filter')) $filter = get_query_var('geodir_event_listing_filter'); if ( $filter == 'today' ) { $where .= " AND ( " . EVENT_SCHEDULE . ".event_date = '" . $current_date . "' OR ( " . EVENT_SCHEDULE . ".event_date <= '" . $current_date . "' AND " . EVENT_SCHEDULE . ".event_enddate >= '" . $current_date . "' ) ) "; } if ( $filter == 'upcoming' ) { $where .= " AND ( " . EVENT_SCHEDULE . ".event_date >= '" . $current_date . "' OR ( " . EVENT_SCHEDULE . ".event_date <= '" . $current_date . "' AND " . EVENT_SCHEDULE . ".event_enddate >= '" . $current_date . "' ) ) "; } if ( $filter == 'past' ) { $where .= " AND " . EVENT_SCHEDULE . ".event_date < '" . $current_date . "' "; } $where = apply_filters('geodir_event_listing_filter_where', $where, $filter); if(isset($_REQUEST['event_start']) && !empty($_REQUEST['event_start']) && !isset($_REQUEST['event_end'])){ $where .= " AND ".EVENT_SCHEDULE.".event_date = '".date_i18n('Y-m-d',strtotime($_REQUEST['event_start']))."' "; }else{ if(isset($_REQUEST['event_start']) && !empty($_REQUEST['event_start'])) $where .= " AND ".EVENT_SCHEDULE.".event_date >= '".date_i18n('Y-m-d',strtotime($_REQUEST['event_start']))."' "; if(isset($_REQUEST['event_end']) && !empty($_REQUEST['event_end'])) $where .= " AND ".EVENT_SCHEDULE.".event_date <= '".date_i18n('Y-m-d',strtotime($_REQUEST['event_end']))."' "; } if(isset($_SESSION['all_near_me'])){ global $plugin_prefix,$wp_query; if(!$geodir_post_type){$geodir_post_type = $wp_query->query_vars['post_type'];} $table = $plugin_prefix . $geodir_post_type . '_detail'; $DistanceRadius = geodir_getDistanceRadius(get_option('geodir_search_dist_1')); $mylat = $_SESSION['user_lat']; $mylon = $_SESSION['user_lon']; if(isset($_SESSION['near_me_range']) && is_numeric($_SESSION['near_me_range'])){$dist =$_SESSION['near_me_range']; } elseif(get_option('geodir_near_me_dist')!=''){$dist = get_option('geodir_near_me_dist');} else{ $dist = '200'; } $lon1 = $mylon-$dist/abs(cos(deg2rad($mylat))*69); $lon2 = $mylon+$dist/abs(cos(deg2rad($mylat))*69); $lat1 = $mylat-($dist/69); $lat2 = $mylat+($dist/69); $rlon1 = is_numeric(min($lon1,$lon2)) ? min($lon1,$lon2) : ''; $rlon2 = is_numeric(max($lon1,$lon2)) ? max($lon1,$lon2) : ''; $rlat1 = is_numeric(min($lat1,$lat2)) ? min($lat1,$lat2) : ''; $rlat2 = is_numeric(max($lat1,$lat2)) ? max($lat1,$lat2) : ''; $where .= " AND ( ".$table.".post_latitude between $rlat1 and $rlat2 ) AND ( ".$table.".post_longitude between $rlon1 and $rlon2 ) "; } // filter place for linked events $venue = isset( $_REQUEST['venue'] ) ? $_REQUEST['venue'] : ''; if ( $venue != '' ) { $venue = explode( '-', $venue, 2); $venue_info = !empty($venue) && isset($venue[0]) ? get_post((int)$venue[0]) : array(); $link_business_id = !empty( $venue_info ) && isset( $venue_info->ID ) ? (int)$venue_info->ID : '-1'; $where .= " AND " . $table . ".geodir_link_business = " . (int)$link_business_id; } } if ( is_search() && isset( $_REQUEST['geodir_search'] ) && isset( $_REQUEST['event_calendar'] ) && is_main_query() ) { $condition_date = substr( $_REQUEST['event_calendar'], 0, 4 ) . '-' . substr( $_REQUEST['event_calendar'] , 4, 2 ) . '-' . substr( $_REQUEST['event_calendar'], 6, 2 ); $filter_date = date_i18n( 'Y-m-d', strtotime( $condition_date ) ); $condition = " ( event_date = '" . $filter_date . "' OR ( event_date <= '" . $filter_date . "' AND event_enddate >= '" . $filter_date . "' ) ) "; if ( $condition ) { $where .= " AND $condition "; } } return $where; }