Jump to content

Productos destacados segun geolocalización por provincias


Recommended Posts

Buenos días,

 

Un cliente nos ha consultado si sería posible que la lista de productos destacados que le aparezcan a quien entrá a la web cambie según la localización de provincia del mismo.

 

Por ejemplo, si entra alguien de Huelva, que le aparezca primero los productos de la categoría "Huelva", si entra alguien de Malaga que le aparezca los productos de la categoría "Malaga".

 

Sé que prestashop ofrece geolocalización a nivel de paises, pero desconozco si puede ofrecer datos de la provincia en la que te encuentras.

 

Si hay alguna forma de obtener la provincia del que visita la web ya sería más facil tocar codigo y hacer estructuras selectivas para que segun cada localización te cargue los productos de determinada categoría.

 

¿Habeis trabajado o  conoceis alguna funcionalidad que ofrezca algo parecido?

 

Gracias.

Link to comment
Share on other sites

No conozco ningún módulo pero hay mucho código en la web donde dado una ip te indica la provincia y sabiendo esto puedes programarte el módulo a medida.

 

 

<?php

        $ip = '212.32.52.135'; //IP de ejemplo
        $default = 'desconocido'; //IP por defecto
        if (!is_string($ip) || strlen($ip) < 1 || $ip == '127.0.0.1' || $ip == 'localhost') $ip = '8.8.8.8';
        $curlopt_useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)';
        
        $url = 'http://ipinfodb.com/ip_locator.php?ip='.urlencode($ip);
        $ch = curl_init();
        
        $curl_opt = array(
            CURLOPT_FOLLOWLOCATION => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $curlopt_useragent, CURLOPT_URL => $url, CURLOPT_TIMEOUT => 1, CURLOPT_REFERER => 'http://'.$_SERVER['HTTP_HOST'],
        );
        
        curl_setopt_array($ch, $curl_opt);
        
        $content = curl_exec($ch);
        
        if (!is_null($curl_info)) { $curl_info = curl_getinfo($ch);  }
        
        curl_close($ch);
        
        if ( preg_match('{<li>Ciudad: ([^<]*)</li>}i', $content, $regs))  $ciudad = $regs[1];
        if ( preg_match('{<li>Provincia: ([^<]*)</li>}i', $content, $regs)) $estado = $regs[1];
        if( $ciudad != '' && $estado != '' ){
            $location = $ciudad. ', ' . $estado;
            echo $location;
        } else {
            echo $default; 
        }
 ?>
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...