/** * Sets the location request parameters. * * @since 1.0.0 * * @global object $wp_query WordPress Query object. * @global object $wpdb WordPress Database object. * @global string $geodir_post_type The post type. * @global array $geodir_addon_list List of active GeoDirectory extensions. * @global string $table Listing table name. * @global float $dist Distance value to be filtered. * @global string $mylat Current latitude. * @global string $mylon Current longitude. * @global string $s Search keyword. * @global string $snear Nearest location to search. * @global string $s_A Extra parameters. * @global string $s_SA Extra parameters. */ function set_listing_request() { global $wp_query, $wpdb, $geodir_post_type, $table, $dist, $mylat, $mylon, $s, $snear, $s, $s_A, $s_SA; // fix woocommerce shop products filtered by language for GD + WPML + Woocommerce if (!geodir_is_geodir_page()) { return; } /* remove all pre filters */ remove_all_filters('query'); remove_all_filters('posts_search'); remove_all_filters('posts_fields'); remove_all_filters('posts_join'); remove_all_filters('posts_orderby'); remove_all_filters('posts_where'); if (is_search() && isset($_REQUEST['geodir_search']) && $_REQUEST['geodir_search'] != '') { if (isset($_REQUEST['scat']) && $_REQUEST['scat'] == 'all') { $_REQUEST['scat'] = ''; } //if(isset($_REQUEST['s']) && $_REQUEST['s'] == '+') $_REQUEST['s'] = ''; if (isset($_REQUEST['sdist'])) { $_REQUEST['sdist'] != '0' && $_REQUEST['sdist'] != '' ? $dist = esc_attr($_REQUEST['sdist']) : ($dist = 25000); } elseif (get_option('geodir_search_dist') != '') { $dist = get_option('geodir_search_dist'); } else { $dist = 25000; } // Distance if (isset($_REQUEST['sgeo_lat'])) { $mylat = (double) esc_attr($_REQUEST['sgeo_lat']); } else { $mylat = (double) geodir_get_current_city_lat(); } // Latatude if (isset($_REQUEST['sgeo_lon'])) { $mylon = (double) esc_attr($_REQUEST['sgeo_lon']); } else { $mylon = (double) geodir_get_current_city_lng(); } // Distance if (isset($_REQUEST['snear'])) { $snear = trim(esc_attr($_REQUEST['snear'])); } if (isset($_REQUEST['s'])) { $s = trim(esc_attr(wp_strip_all_tags($_REQUEST['s']))); } if ($snear == 'NEAR ME') { $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])); } if (strstr($s, ',')) { $s_AA = str_replace(" ", "", $s); $s_A = explode(",", $s_AA); $s_A = implode('","', $s_A); $s_A = '"' . $s_A . '"'; } else { $s_A = '"' . $s . '"'; } if (strstr($s, ' ')) { $s_SA = explode(" ", $s); } else { $s_SA = ''; } } }
/** * Sets the location request parameters. * * @since 1.0.0 * * @global object $wp_query WordPress Query object. * @global object $wpdb WordPress Database object. * @global string $geodir_post_type The post type. * @global array $geodir_addon_list List of active GeoDirectory extensions. * @global string $table Listing table name. * @global float $dist Distance value to be filtered. * @global string $mylat Current latitude. * @global string $mylon Current longitude. * @global string $s Search keyword. * @global string $snear Nearest location to search. * @global string $s_A Extra parameters. * @global string $s_SA Extra parameters. */ function set_listing_request() { global $wp_query, $wpdb, $geodir_post_type, $table, $dist, $mylat, $mylon, $s, $snear, $s, $s_A, $s_SA; // fix woocommerce shop products filtered by language for GD + WPML + Woocommerce if (!geodir_is_geodir_page()) { return; } /* remove all pre filters */ remove_all_filters('query'); remove_all_filters('posts_search'); remove_all_filters('posts_fields'); remove_all_filters('posts_join'); remove_all_filters('posts_orderby'); remove_all_filters('posts_where'); if (is_search() && isset($_REQUEST['geodir_search']) && $_REQUEST['geodir_search'] != '') { if (isset($_REQUEST['scat']) && $_REQUEST['scat'] == 'all') { $_REQUEST['scat'] = ''; } //if(isset($_REQUEST['s']) && $_REQUEST['s'] == '+') $_REQUEST['s'] = ''; if (isset($_REQUEST['sdist'])) { $_REQUEST['sdist'] != '0' && $_REQUEST['sdist'] != '' ? $dist = $_REQUEST['sdist'] : ($dist = 25000); } elseif (get_option('geodir_search_dist') != '') { $dist = get_option('geodir_search_dist'); } else { $dist = 25000; } // Distance if (isset($_REQUEST['sgeo_lat'])) { $mylat = (double) $_REQUEST['sgeo_lat']; } else { $mylat = (double) geodir_get_current_city_lat(); } // Latatude if (isset($_REQUEST['sgeo_lon'])) { $mylon = (double) $_REQUEST['sgeo_lon']; } else { $mylon = (double) geodir_get_current_city_lng(); } // Distance if (isset($_REQUEST['snear'])) { $snear = trim($_REQUEST['snear']); } if (isset($_REQUEST['s'])) { $s = trim($_REQUEST['s']); } if ($snear == 'NEAR ME') { $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])); } if (strstr($s, ',')) { $s_AA = str_replace(" ", "", $s); $s_A = explode(",", $s_AA); $s_A = implode('","', $s_A); $s_A = '"' . $s_A . '"'; } else { $s_A = '"' . $s . '"'; } if (strstr($s, ' ')) { $s_SA = explode(" ", $s); } else { $s_SA = ''; } } /* ===old code start === if($wp_query->is_main_query() || get_query_var('gd_location')): $url_separator = get_option('geodir_listingurl_separator'); //Set Location if( geodir_is_page('location') || ( geodir_is_page('search') && isset($_REQUEST['gd_location']) ) ){ if( geodir_is_page('search') ){ $search_location_request = explode(",",urldecode($_REQUEST['gd_location'])); @list($gd_country, $gd_region, $gd_city) = $search_location_request; }else{ $gd_country = get_query_var('gd_country'); $gd_region = get_query_var('gd_region'); $gd_city = get_query_var('gd_city'); } $_SESSION['gd_country'] = $gd_country; $_SESSION['gd_region'] = $gd_region; $_SESSION['gd_city'] = $gd_city; }else{ $request_term = ''; $location_request = array(); if(isset($wp_query->tax_query->queries) && $wp_query->tax_query->queries){ $taxonomies = wp_list_pluck( $wp_query->tax_query->queries, 'taxonomy' ); $request_term = isset($wp_query->query[$taxonomies[0]]) ? $wp_query->query[$taxonomies[0]] : ''; } if ( get_option('permalink_structure') != '' ){ if( strpos($request_term,'/'.$url_separator.'/') ){ $location_request = explode('/'.$url_separator.'/',$request_term); $location_request = explode("/",$location_request[0]); }elseif( isset($taxonomies) && !term_exists( $request_term, $taxonomies[0] ) ){ // here i have to check if location plugin installed or not // if the location plugin is not installed then dont set location parameter global $geodir_addon_list; if(!empty($geodir_addon_list) && array_key_exists('geodir_location_manager', $geodir_addon_list) && $geodir_addon_list['geodir_location_manager'] == 'yes') { $location_request = explode("/",$request_term); } } }else{ if(isset($_REQUEST['gd_country'])) $location_request[] = $_REQUEST['gd_country']; if(isset($_REQUEST['gd_region'])) $location_request[] = $_REQUEST['gd_region']; if(isset($_REQUEST['gd_city'])) $location_request[] = $_REQUEST['gd_city']; } if(!empty($location_request)){ if(get_option('geodir_show_location_url') == 'all'){ @list($gd_country, $gd_region, $gd_city) = $location_request; }else{ $gd_city = end($location_request); } if($gd_city != '' || $gd_country != ''){ unset( $_SESSION['gd_city'], $_SESSION['gd_region'], $_SESSION['gd_country'] ); } } } unset( $_SESSION['gd_multi_location'], $_SESSION['gd_city'], $_SESSION['gd_region'], $_SESSION['gd_country'] ); if(get_option('geodir_show_location_url') == 'all'){ if(isset($gd_country) && $gd_country != '' ){ $wp_query->set('gd_country',$gd_country); $_SESSION['gd_country'] = $gd_country; }elseif( isset($_SESSION['gd_country']) && $_SESSION['gd_country'] != '' ){ $wp_query->set('gd_country',$_SESSION['gd_country']); } if( isset($gd_region) && $gd_region != '' ){ $wp_query->set('gd_region',$gd_region); $_SESSION['gd_region'] = $gd_region; }elseif( isset($_SESSION['gd_region']) && $_SESSION['gd_region'] != '' ){ $wp_query->set('gd_region',$_SESSION['gd_region']); } } if( isset($gd_city) && $gd_city != '' ){ $wp_query->set('gd_city',$gd_city); $_SESSION['gd_city'] = $gd_city; }elseif( isset($_SESSION['gd_city']) && $_SESSION['gd_city'] != '' ){ $wp_query->set('gd_city',$_SESSION['gd_city']); } if( isset($_REQUEST['neighbourhood']) && $_REQUEST['neighbourhood'] != '' ){ $wp_query->set('gd_neighbourhood',$_REQUEST['neighbourhood']); } if((isset($_SESSION['gd_country']) && $_SESSION['gd_country']!='') || (isset($_SESSION['gd_region']) && $_SESSION['gd_region'] !='') || (isset($_SESSION['gd_city']) && $_SESSION['gd_city'] != '')) $_SESSION['gd_multi_location'] = true ; else{ if(isset($_SESSION['gd_multi_location'])) unset( $_SESSION['gd_multi_location'], $_SESSION['gd_city'], $_SESSION['gd_region'], $_SESSION['gd_country'] ); } endif; // End if Set Location /* ===old code end ===*/ }