Function Reference: geodir_default_location_where
Summary
Adds the default location filter to the where clause.
Global Values
- $wp_query
- (object) (required) WordPress Query object.
- Default: None
- $wpdb
- (object) (required) WordPress Database object.
- Default: None
- $plugin_prefix
- (string) (required) Geodirectory plugin table prefix.
- Default: None
- $wp
- (object) (required) WordPress object.
- Default: None
Package
GeoDirectory_Location_Manager
Parameters
- $where
- (string) (required) The WHERE clause of the query.
- Default: None
- $p_table
- (string) (required) Post table.
- Default: None
Return Values
- (mixed|string)
- Filterd where clause.
Change Log
Since: 1.0.0
Filters
‘geodir_location_allowed_location_where’ [Line: 1534]
Source File
geodir_default_location_where() is located in geodir_location_manager/geodir_location_hooks_actions.php [Line: 1531]
Source Code
function geodir_default_location_where( $where, $p_table = '' ) { global $wp_query, $wpdb, $table, $wp, $plugin_prefix; $allowed_location = apply_filters( 'geodir_location_allowed_location_where', true, $wp->query_vars, $table, $wp_query, $p_table ); if ( !$allowed_location ) { return $where; } // my location set start if(isset($_SESSION['all_near_me'])){ $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 post_latitude between $rlat1 and $rlat2 AND post_longitude between $rlon1 and $rlon2 "; return $where; } $where = str_replace( "0 = 1", "1=1", $where ); $country = ''; $region = ''; $city = ''; $neighbourhood = ''; if ( isset( $_SESSION['gd_country'] ) && $_SESSION['gd_country'] != '' ) { $country = $_SESSION['gd_country']; } if ( $country == '' ) { // check if we have country in query vars if ( isset( $wp->query_vars['gd_country'] ) && $wp->query_vars['gd_country'] != '' ) { $country = $wp->query_vars['gd_country']; } } if ( isset( $_SESSION['gd_region'] ) && $_SESSION['gd_region'] != '' ) { $region = $_SESSION['gd_region']; } if ( $region == '' ) { // check if we have region in query vars if ( isset( $wp->query_vars['gd_region'] ) && $wp->query_vars['gd_region'] != '' ) { $region = $wp->query_vars['gd_region']; } } if ( isset( $_SESSION['gd_city'] ) && $_SESSION['gd_city'] != '' ) { $city = $_SESSION['gd_city']; } if ( $city == '' ) { // check if we have city in query vars if ( isset($wp->query_vars['gd_city'] ) && $wp->query_vars['gd_city'] != '' ) { $city = $wp->query_vars['gd_city']; } } $neighbourhood = get_query_var( 'gd_neighbourhood' ); if ( empty( $neighbourhood ) ) { if ( isset( $wp->query_vars['gd_neighbourhood'] ) && $wp->query_vars['gd_neighbourhood'] != '' ) { $neighbourhood = $wp->query_vars['gd_neighbourhood']; } } // added for map calls if ( empty( $neighbourhood ) ) { if ( isset( $_REQUEST['gd_neighbourhood'] ) && $_REQUEST['gd_neighbourhood'] != '' ) { $neighbourhood = $_REQUEST['gd_neighbourhood']; if ( isset( $_REQUEST['gd_posttype'] ) && $_REQUEST['gd_posttype'] != '' ) { $p_table = "pd"; } } } $format = "''"; if ( is_array( $neighbourhood ) && !empty( $neighbourhood ) ) { $neighbourhood_length = count( $neighbourhood ); $format = array_fill( 0, $neighbourhood_length, '%s' ); $format = implode( ',', $format ); } else if( !is_array( $neighbourhood ) && !empty( $neighbourhood ) ) { $format = "%s"; $neighbourhood = array( $neighbourhood ); } if ( $country != '' ) { //$where .= " AND FIND_IN_SET('[".$country."]', post_locations) "; $where .= " AND post_locations LIKE '%,[".$country."]' "; } if ( $region != '' ) { //$where .= " AND FIND_IN_SET('[".$region."]', post_locations) "; $where .= " AND post_locations LIKE '%,[".$region."],%' "; } if ( $city != '' ) { //$where .= " AND FIND_IN_SET('[".$city."]', post_locations) "; $where .= " AND post_locations LIKE '[".$city."],%' "; } if ( $neighbourhood != '' ) { $post_table = $table != '' ? $table . '.' : ''; /* fixed db error when $table is not set */ if(!empty($p_table)){$post_table = $p_table. '.';} $where .= $wpdb->prepare( " AND " . $post_table . "post_neighbourhood IN ($format) " , $neighbourhood ); } return $where; }