JMBK Posted March 3, 2016 Share Posted March 3, 2016 Bonjour, Lorsque les clients s'inscrivent dans ma boutique, le pays par défaut est France. Or, beaucoup sont Belges ou Suisse, ce qui pose problème à l'encodage par le client car le champ 'Code postal' précède le champ 'pays' (qui est donc par défaut sur France). Le nombre de chiffres du code postal étant différent selon le pays, le champ se rougit s'il ne correspond pas au nombre de chiffres des codes postaux français. Car évidemment personne ne va d'abord modifier le champ pays qui se trouve en milieu de formulaire avant de remonter pour encoder son code postal... D'où ma question : y a-t-il moyen d'enlever le pays par défaut dans le menu déroulant ? Si ce n'est pas possible, est-ce que quelqu'un peut m'expliquer comment déplacer ce champ "pays" avant code postal car j'ai tenté de remonter à l'endroit voulu le code ci dessous dans le fichier address.tpl de mon thème mais cela n'a aucun effet... {if $field_name eq 'Country:name' || $field_name eq 'country' || $field_name eq 'Country:iso_code'} <div class="required form-group"> <label for="id_country">{l s='Country'} <sup>*</sup></label> <select id="id_country" class="form-control" name="id_country">{$countries_list}</select> </div> {/if} D'avance merci pour votre aide ! Cordialement, JMBK Link to comment Share on other sites More sharing options...
doekia Posted March 3, 2016 Share Posted March 3, 2016 99% des formulaires sur le web ont ce même problème. Ce que tu peux éventuellement faire c'est mettre le pays/état avant le code postal / ville dans ton formulaire comme tu essaye de le faire. Si ça ne marche pas c'est que tu dois t'y prendre mal, genre problème de cache prestashop, cache du navigateur, ou encore typo qui empèche la recompile. Car ça doit marcher. Attention a bien respecter les id et les names car du js vient la-dessus et doit pouvoir retrouver ces petits Link to comment Share on other sites More sharing options...
doekia Posted March 3, 2016 Share Posted March 3, 2016 (edited) En gros et en partant du thème de base, A la ligne 99 de address.tpl, tu dois avoir ceci: {if $field_name eq 'Country:name' || $field_name eq 'country' || $field_name eq 'Country:iso_code'} <div class="required form-group"> <label for="id_country">{l s='Country'} <sup>*</sup></label> <select id="id_country" class="form-control" name="id_country">{$countries_list}</select> </div> {/if} {if $field_name eq 'State:name'} {assign var="stateExist" value=true} <div class="required id_state form-group"> <label for="id_state">{l s='State'} <sup>*</sup></label> <select name="id_state" id="id_state" class="form-control"> <option value="">-</option> </select> </div> {/if} {if $field_name eq 'postcode'} {assign var="postCodeExist" value=true} <div class="required postcode form-group unvisible"> <label for="postcode">{l s='Zip/Postal Code'} <sup>*</sup></label> <input class="is_required validate form-control" data-validate="{$address_validation.$field_name.validate}" type="text" id="postcode" name="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{else}{if isset($address->postcode)}{$address->postcode|escape:'html':'UTF-8'}{/if}{/if}" /> </div> {/if} {if $field_name eq 'city'} <div class="required form-group"> <label for="city">{l s='City'} <sup>*</sup></label> <input class="is_required validate form-control" data-validate="{$address_validation.$field_name.validate}" type="text" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{else}{if isset($address->city)}{$address->city|escape:'html':'UTF-8'}{/if}{/if}" maxlength="64" /> </div> {* if customer hasn't update his layout address, country has to be verified but it's deprecated *} {/if} Edited March 3, 2016 by doekia (see edit history) Link to comment Share on other sites More sharing options...
JMBK Posted March 3, 2016 Author Share Posted March 3, 2016 Merci pour ton aide doekia ! J'ai donc maintenant le code ci-dessous à partir de la ligne 99 mais cela ne fonctionne toujours pas. Les caches sont vidés mais j'ai déjà remarqué que qqs fois, prestashop mettait quelques longues minutes à digérer un changement. Peut-être dois-je être patient ? JM {if $field_name eq 'Country:name' || $field_name eq 'country' || $field_name eq 'Country:iso_code'} <div class="required form-group"> <label for="id_country">{l s='Country'} <sup>*</sup></label> <select id="id_country" class="form-control" name="id_country">{$countries_list}</select> </div> {/if} {if $field_name eq 'postcode'} {assign var="postCodeExist" value=true} <div class="required postcode form-group unvisible"> <label for="postcode">{l s='Zip/Postal Code'} <sup>*</sup></label> <input class="is_required validate form-control" data-validate="{$address_validation.$field_name.validate}" type="text" id="postcode" name="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{else}{if isset($address->postcode)}{$address->postcode|escape:'html':'UTF-8'}{/if}{/if}" /> </div> {/if} {if $field_name eq 'city'} <div class="required form-group"> <label for="city">{l s='City'} <sup>*</sup></label> <input class="is_required validate form-control" data-validate="{$address_validation.$field_name.validate}" type="text" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{else}{if isset($address->city)}{$address->city|escape:'html':'UTF-8'}{/if}{/if}" maxlength="64" /> </div> {* if customer hasn't update his layout address, country has to be verified but it's deprecated *} {/if} {if $field_name eq 'State:name'} {assign var="stateExist" value=true} <div class="required id_state form-group"> <label for="id_state">{l s='State'} <sup>*</sup></label> <select name="id_state" id="id_state" class="form-control"> <option value="">-</option> </select> Link to comment Share on other sites More sharing options...
doekia Posted March 3, 2016 Share Posted March 3, 2016 quelques minutes ?!? A moins d'avoir un hébergement zarbi avec cluster c'est immédiat - si tu utilises cet empafé de Chrome vider le cache de celui-ci Link to comment Share on other sites More sharing options...
JMBK Posted March 3, 2016 Author Share Posted March 3, 2016 Empaffé de Chrome, empaffé de firefox... même le cache vidé aucun d'eux ne me relève mon champ pays (le cache prestashop est évidemment vidé aussi)... Il doit y avoir autre chose à faire en plus du déplacement de code. Par dépit, j'ai tenté l'identification sur base de l'adresse IP mais cela ne fonctionne pas non plus. Le système me voit en France alors que je suis en Belgique (une fois). Pas d'autre idée ? Link to comment Share on other sites More sharing options...
doekia Posted March 3, 2016 Share Posted March 3, 2016 Contactes-moi qu'on regarde sous le capot. Link to comment Share on other sites More sharing options...
Cedric Prieels Posted January 23, 2017 Share Posted January 23, 2017 Bonjour JMBK, je remonte un vieux post, mais as-tu trouvé la solution à ce problème ? je suis dans le même cas que toi merci Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now