Filtrar usuarios anonimos segun su procedencia a un formulario de contacto concreto D7

Buenas, me gustaría redirigir a los usuarios anónimos según su procedencia (localización) a un formulario de contacto concreto. Es decir, si alguien se quiere poner en contacto y es de Madrid vaya a un formulario y si es de Bilbao que vaya a otro. Alguien conoce algún modulo que facilite esto o otra posibilidad de realizarlo.

Un saludo y gracias.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Aquí hay dos problemas distintos...

...uno es como obtener la localización, para lo que necesitas un módulo tipo smart_ip. A partir de la IP, se consulta una base de datos que te puede decir, con cierto nivel de precisión, donde está ubicado el punto de conexión que utiliza el usuario en ese momento. Yo diría que te puede fiar del nivel de precisión de país o provincia, pero a nivel ciudad puedes encontrarte muchos casos en los que no es posible. Dependiendo del nivel de precisión que necesites, se puede añadir algo a la web para que el usuario refine su localización en base al dato que se le haya detectado. Como por ejemplo, que el usuario seleccione su tienda preferida, si la web es de una cadena o franquicia con tiendas en varios puntos geográficos, etc.

Este tipo de enfoque, donde el usuario tiene la opción de escoger, yo diría que es menos invasivo, y más práctico para el usuario, puesto que puede controlar como se le va a tratar, si el automatismo no atina del todo en su caso.

...el otro problema es como redirigir el usuario al formulario de contacto adecuado. Esto se puede resolver de muchas maneras, depende un poco de como sean estos formularios de contacto, y qué diferencias tengan. Se podría crear un pequeño módulo que en función de la ubicación (que en este punto ya se sabría) redirija al usuario a una URL distinta.

Otro modo sería que un módulo custom haga un form_alter del formulario de contacto, ajustando las diferencias en los campos del mismo en función de la ubicación.

Saludos