Пример #1
0
/**
 * 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 = '';
        }
    }
}
Пример #2
0
/**
 * 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 ===*/
}