Jump to content

[Résolu] Problème avec le champs téléphone requis lors de l'inscription


Recommended Posts

Bonjour,

 

Je rencontre un problème, en effet malgré mon réglage en BO le champs téléphone n'est pas traité par prestashop comme obligatoire et de nombreux clients de le remplissent donc pas.

 

Je tourne en 1.5.4.1

 

Quelqu'un a t'il réussi à solutionner ce problème ?

 

Merci.

 

 

Edited by kimzey (see edit history)
Link to comment
Share on other sites

Bonjour,

 

je viens de tester sur une version local en 1.5.5 et je rencontre le même soucis.

 

Si je clic sur s’inscrire alors que tous les champs sont vides j'obtiens les messages d'erreur suivant :

 

Veuillez accepter nos conditions concernant la confidentialité des données clients, en cochant la case ci-dessous.
nom requis
prénom requis
password requis
address (1) requis
ville requis
Le code postal est invalide. Il doit être saisi comme suit : 0000
 
Il n'est nullement fait mention de la nécessiter d'entrer un téléphone. (Voir fichier joint.)
 
Le bo est bien évidement réglé sur demander au moins un numéro et si je remplis tous les champs sauf téléphone ça marche.
 
Cdt
 
Kimzey

post-55721-0-20675100-1379068524_thumb.png

Edited by kimzey (see edit history)
Link to comment
Share on other sites

Bonjour Kimzey,

 

En création de compte seulement, dans le BO l'enregistrement du client se passe bien.

Lors de l'enregistrement de l'adresse, par la suite, la gestion du numéro de tél est bien gérée. (voir capture)

post-459329-0-53154100-1379073615_thumb.png

 

C'est une solution de secours, si tu veux gérer le tél obligatoire ;)

 

Regarde dans le fichier authentication.tpl

                        </p>
                        {elseif $field_name eq "phone"}
                        <p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}text">
                            <label for="phone">{l s='Phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label>
                            <input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}"/>
                        </p>

Dans le fichier adresse.tpl

        {if isset($one_phone_at_least) && $one_phone_at_least}
            <p class="inline-infos required">{l s='You must register at least one phone number.'}</p>
        {/if}
        <p class="text">
            <label for="phone">{l s='Home phone'}</label>
            <input type="text" id="phone" name="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{else}{if isset($address->phone)}{$address->phone|escape:'html'}{/if}{/if}" />
        </p>
        <p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}text">
            <label for="phone_mobile">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label>
            <input type="text" id="phone_mobile" name="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{else}{if isset($address->phone_mobile)}{$address->phone_mobile|escape:'html'}{/if}{/if}" /
Link to comment
Share on other sites

Effectivement si on teste de cette manière, le contrôle est effectué plus tard, donc il y a une amélioration à faire de ce côté là car le comportement attendu fonctionne au final (le client ne peut s'inscrire s'il remplit tous les champs sauf les téléphones)

 

Je viens d'ouvrir un ticket d'amélioration : http://forge.prestashop.com/browse/PSCFV-10392

 

 

Bien cordialement,

Link to comment
Share on other sites

Merci pour l'ouverture du ticket sur la forge mais selon mes tests je peux m’inscrire sans numéros de téléphone avec le mode d'inscription en 5 étapes aussi bien avec un presta 1.5.4.1 qu'un 1.5.5. 

 

Avec la méthode one page checkout ça fonctionne normalement.

 

Je pense qu'il serait intéressant de rectifier votre ticket sur le forge.

 

Cdt,

Link to comment
Share on other sites

En 1.5.5.0, même en 5 étapes, je ne peux m'inscrire sans numéro de téléphone s'il est requis dans les options : ça fonctionne, je viens de tester

 

Voir le screenshot ci-joint

 

(C'est possible que le problème soit présent si vous testez sur une 1.5.4.1 mais sur 1.5.5.0 ça a été corrigé)

 

 

Bien cordialement,

post-399080-0-79981900-1379082336_thumb.png

Link to comment
Share on other sites

Je suis très étonné car je viens à l’instant de réinstaller une 1.5.5 en local en la téléchargeant à nouveau sur prestashop.com et lors de mon test je peux commander sans rentrer de numéros de téléphone.

 

Ma configuration est la suivante :

- paiement en 5 étapes

- création du compte et adresse

- Numéro de téléphone réglé sur OUI

 

Quelle version utilisez-vous ?

 

Est-ce bien le thème par défaut ?

 

Est elle accessible en ligne que je teste de mon PC ?

 

Merci pour votre aide.

Link to comment
Share on other sites

Ok j'ai compris la différence,

 

Vous utliser l'option guest checkout en plus des autres !

 

et là oui avec cette option et une commande express j'ai bien la vérification du téléphone.

 

Par contre si je crée un compte normalement ça ne marche pas et avec le réglage classique non plus :

 

- paiement en 5 étapes
- création du compte et adresse
- Numéro de téléphone réglé sur OUI
- guest checkout sur NON
 
La vérification du téléphone ne fonctionne pas y compris sur 1.5.5.0
Edited by kimzey (see edit history)
Link to comment
Share on other sites

Trouvé !

 

J'ai rajouter une vérification dans AuthController.php situé dans controllers/front.

A la ligne 412 j'ai rajouté :

if (Tools::isSubmit('submitAccount') || !Tools::getValue('is_new_customer'))
			{
				if (!Tools::getValue('phone') && !Tools::getValue('phone_mobile'))
					$error_phone = true;
			}
			elseif (((Configuration::get('PS_REGISTRATION_PROCESS_TYPE') || Configuration::get('PS_ORDER_PROCESS_TYPE')) 
					&& (Configuration::get('PS_ORDER_PROCESS_TYPE') && !Tools::getValue('email_create')))
					&& (!Tools::getValue('phone') && !Tools::getValue('phone_mobile')))
				$error_phone = true;
			elseif (((Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && Configuration::get('PS_ORDER_PROCESS_TYPE') && Tools::getValue('email_create')))
					&& (!Tools::getValue('phone') && !Tools::getValue('phone_mobile')))
				$error_phone = true;
		}

:)

Edited by kimzey (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...