Jump to content

¿Cómo añadir al teléfono el prefijo del país?


E-kipper

Recommended Posts

Hola.

 

Para el transportista Mondial Relay (Punto Pack en España) necesito que el número de teléfono que introduce el usuario sea en formato internacional, es decir, con el +34 delante (por el momento sólo venderé en España, más adelante quizás venda fuera)

 

¿Cómo hacer para que a los 9 dígitos del número de teléfono se añada automáticamente el +34 delante?

 

Había pensado modificar la etiqueta "Teléfono" y añadir texto diciendo que anteponga el +34 y después los 9 dígitos sin espacios. Otra opción sería modificarlo a mano en la base de datos, pero sólo puedo hacerlo si el cliente se registra, y además sería un poco peñazo si tengo muchos clientes.

Link to comment
Share on other sites

Es sencillo, si solo quieres agregar un prefijo el que tu quieras, puedes hacerlo en el archivo authentication.tpl del tema que estas usando "/public_html/themes/tema que estas usando/authentication.tpl", solo cambias un poco el valor del input.

Para el Telefono buscas esta linea de codigo:

value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}"

Y remplasala por esta

value="{if isset($smarty.post.phone)}{$smarty.post.phone}{else}+34{/if}"

El +34 que agregue es el prefijo que tu quisieras dejar por default.

Lo mismo pudieras hacer para el celular, solo cambia:

value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{/if}"

Por esto:

value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{else}+34{/if}"

Ahora que si quisieras agregar un prefijo dependiendo el pais que eligieras tendrias que insertar este un script como este:

  <script type="text/javascript">
 $("#id_country").change(function () {
  var pais = $("#id_country option:selected").val();
  if (pais == 6){ $("#phone").val('+34'); $("#phone_mobile").val('+34'); } //España  
  if (pais == 145){ $("#phone").val('+52'); $("#phone_mobile").val('+52'); } //Mexico
 });
  </script>

En "(pais == 6)" el seis es el id del pais en la base de datos y en los dos ".val('+34')" es el codigo que yo quisiera anteponer para ese pais, en este caso los ejemplos que te doy el 6 corresponde a españa por eso puse el prefijo +34 y el pais 145 corresponde a mexico.

 

El script si quiesieras podrias insertarlo despues de los paises, osea despues de esto:

<p class="required select">
 <label for="id_country">{l s='Country'}</label>
 <select name="id_country" id="id_country">
  <option value="">-</option>
  {foreach from=$countries item=v}
  <option value="{$v.id_country}" {if ($sl_country == $v.id_country)} selected="selected"{/if}>{$v.name|escape:'htmlall':'UTF-8'}</option>
  {/foreach}
 </select>
 <sup>*</sup>
</p>

 

Con eso es suficiente para que lo que necesitas en el formulario de registro, saludos.

Link to comment
Share on other sites

Muchas gracias, aQs. Voy a probar a hacer esos cambios.

 

Pero... (siempre hay un pero :)) ¿Cómo se podría hacer para que tomase el prefijo telefónico del país que sea de la propia base de datos? El prefijo telefónico del país es uno de los datos que se guarda en la tabla, y así serviría para toooooodos los países en los que vendiese.

 

Gracias a quien responda.

Link to comment
Share on other sites

Si seria interesante, creo que para eso solo habria que modificar algo en FrontController.php, creo que en ese archivo hace la consulta a la base de datos porque en AuthController.php no veo consultas, vere si puedo lograr algo aunque no se mucho de php :), por lo pronto puedes usar esa solucion y si alguien mas puede aportar algo se agradeceria.

Link to comment
Share on other sites

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