Function Reference: geodir_location_manager_share_location
Summary
Redirect url after sharing location.
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
Package
GeoDirectory_Location_Manager
Parameters
- $redirect_url
- (string) (required) Old redirect url.
- Default: None
Return Values
- (bool|null|string)
- Filtered redirect url.
Change Log
Since: 1.0.0
Source File
geodir_location_manager_share_location() is located in geodir_location_manager/geodir_location_hooks_actions.php [Line: 3119]
Source Code
function geodir_location_manager_share_location($redirect_url) { global $wp_query,$plugin_prefix; if(isset($_REQUEST['geodir_ajax']) && $_REQUEST['geodir_ajax']=='share_location') { if(isset($_REQUEST['error']) && $_REQUEST['error']) { $_SESSION['gd_location_shared'] = true ; return ; } global $wpdb; // ask user to share his location only one time. $_SESSION['gd_location_shared'] = true ; $DistanceRadius = geodir_getDistanceRadius(get_option('geodir_search_dist_1')); if(get_option('geodir_search_dist')!=''){$dist = get_option('geodir_search_dist');}else{ $dist = '25000'; } if(get_option('geodir_near_me_dist')!=''){$dist2 = get_option('geodir_near_me_dist');}else{ $dist2 = '200'; } if(isset($_REQUEST['lat']) && isset($_REQUEST['long'])) { $mylat = (float)stripslashes(ucfirst($_REQUEST['lat'])); $mylon = (float)stripslashes(ucfirst($_REQUEST['long'])); }else { $ip = $_SERVER['REMOTE_ADDR']; $addr_details = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$ip)); $mylat = stripslashes(ucfirst($addr_details['geoplugin_latitude'])); $mylon = stripslashes(ucfirst($addr_details['geoplugin_longitude'])); } $_SESSION['user_lat'] = $mylat; $_SESSION['user_lon'] = $mylon; $lon1 = $mylon- $dist2/abs(cos(deg2rad($mylat))*69); $lon2 = $mylon+$dist2/abs(cos(deg2rad($mylat))*69); $lat1 = $mylat-($dist2/69); $lat2 = $mylat+($dist2/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) : ''; $near_location_info = $wpdb->get_results($wpdb->prepare("SELECT *,CONVERT((%s * 2 * ASIN(SQRT( POWER(SIN((%s - (".$plugin_prefix."gd_place_detail.post_latitude)) * pi()/180 / 2), 2) +COS(%s * pi()/180) * COS( (".$plugin_prefix."gd_place_detail.post_latitude) * pi()/180) *POWER(SIN((%s - ".$plugin_prefix."gd_place_detail.post_longitude) * pi()/180 / 2), 2) ))),UNSIGNED INTEGER) as distance FROM ".$plugin_prefix."gd_place_detail WHERE (".$plugin_prefix."gd_place_detail.post_latitude IS NOT NULL AND ".$plugin_prefix."gd_place_detail.post_latitude!='') AND ".$plugin_prefix."gd_place_detail.post_latitude between $rlat1 and $rlat2 AND ".$plugin_prefix."gd_place_detail.post_longitude between $rlon1 and $rlon2 ORDER BY distance ASC LIMIT 1",$DistanceRadius,$mylat,$mylat,$mylon)); if(!empty($near_location_info)){ $redirect_url = geodir_get_location_link('base').'me'; return ($redirect_url);die(); } $location_info = $wpdb->get_results($wpdb->prepare("SELECT *,CONVERT((%s * 2 * ASIN(SQRT( POWER(SIN((%s - (".POST_LOCATION_TABLE.".city_latitude)) * pi()/180 / 2), 2) +COS(%s * pi()/180) * COS( (".POST_LOCATION_TABLE.".city_latitude) * pi()/180) *POWER(SIN((%s - ".POST_LOCATION_TABLE.".city_longitude) * pi()/180 / 2), 2) ))),UNSIGNED INTEGER) as distance FROM ".POST_LOCATION_TABLE." ORDER BY distance ASC LIMIT 1",$DistanceRadius,$mylat,$mylat,$mylon)); if(!empty($location_info)) { $location_info = end($location_info); $location_array = array(); $location_array['gd_country'] = $location_info->country_slug; $location_array['gd_region'] = $location_info->region_slug; $location_array['gd_city'] = $location_info->city_slug; $base = rtrim(geodir_get_location_link('base') , '/'); $redirect_url = $base .'/' .$location_info->country_slug. '/' . $location_info->region_slug. '/' . $location_info->city_slug ; $redirect_url = geodir_location_permalink_url( $redirect_url ); } else { $redirect_url = geodir_get_location_link('base'); } return ($redirect_url); die; } }