Jump to content

Changer l'ordre du formulaire d'inscription


Recommended Posts

Version de Prestashop : 1.7.6.1
Thème : Classic
Version de PHP : 5.6

Bonjour,

J'aimerai changer l'ordre des champs de mon formulaire d'inscription, en ayant activé l'option B2B.

J'aimerai remonté les champs "Mot de passe" et "Email" juste en dessous du champs "Nom".

J'ai regardé du coté du fichier "form-fields.tpl" dans mon template, mais cela ne semble pas être ici.

Merci à vous.

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

Si vous êtes intéressé par les changements de base (ce qui n'est pas la méthode suggérée),

Apporté les modifications suivantes dans  classes\form\CustomerFormatter.php

Déplacez ces lignes 

$format['email'] = (new FormField())
            ->setName('email')
            ->setType('email')
            ->setLabel(
                $this->translator->trans(
                    'Email',
                    [],
                    'Shop.Forms.Labels'
                )
            )
            ->setRequired(true);

        if ($this->ask_for_password) {
            $format['password'] = (new FormField())
                ->setName('password')
                ->setType('password')
                ->setLabel(
                    $this->translator->trans(
                        'Password',
                        [],
                        'Shop.Forms.Labels'
                    )
                )
                ->setRequired($this->password_is_required);
        }

Juste en dessous du

$format['lastname'] = (new FormField())
            ->setName('lastname')
            ->setLabel(
                $this->translator->trans(
                    'Last name',
                    [],
                    'Shop.Forms.Labels'
                )
            )
            ->setRequired(true);

 

  • Like 1
Link to comment
Share on other sites

J'ai copié le fichier CustomerFormatter.php dans le dossier override/classes/form

Puis j'ai modifié le code pour modifier l'ordre de mon formulaire comme mentionné ci dessus.

Et enfin j'ai bien remplacé la ligne 28 de mon fichier par :

class CustomerFormatter implements CustomerFormatterCore

Problème, en actualisant ma page j'ai l'erreur suivante :

Error: CustomerFormatter cannot implement CustomerFormatterCore - it is not an interface

Merci

Link to comment
Share on other sites

Bonjour

Le plus simple est de ne pas modifier le code PHP mais d'intervenir dans le template customer-form.tpl de votre theme.

Exemple pour déplacer les zones email et password avant la zone id_gender :

 

{block name='form_field'}
	{if $field.name == 'id_gender'}
		{* Insert field email and password before gender *}
		{form_field field=$formFields.email}
		{form_field field=$formFields.password}
	{/if}
    {* Do not add the email and password fields which are handled separately. *}
    {if $field.name != 'email' && $field.name != 'password'}
        {form_field field=$field}
    {/if}
{/block}

 

Link to comment
Share on other sites

Au top, cela fonctionne, un grand merci. 

Dernière chose. J'ai installé le plugin "Custom Registration Fields" pour ajouter d'autres champs à mon formulaire d'inscription.

Ses champs viennent s'ajouter à la fin du formulaire par défaut de prestashop. Mais à la fin de ce formulaire par défaut j'ai les cases à cocher suivantes "Recevoir notre Newsletter" et "J'accepte les conditions générales...". Du coup ses champs se retrouvent au milieux de mon formulaire. Une idée pour les mettre à la fin, donc tout en bas après les champs ajoutés par le plugin?

Merci

 

Edited by Pioupial (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...