Jump to content

Vérification Code inscription assignation groupe


Recommended Posts

 

Bonjour, je viens vers vous car mon code ne fonctionne pas et je ne sais pas pourquoi. Certainement des erreurs de débutant car je ne connais pas smarty. Je suis en 1.7.5 en local.

Je vous explique mon problème : 

Je voudrais que les clients qui s'inscrive sur la boutique puisse préciser si ils sont client pro ou non, afin de les assignés dans le groupe correspondant.

J'ai donc modifier mon fichier registration.tpl afin d'ajouter une case à cocher :

{block name='page_title'}
  {l s='Create an account' d='Shop.Theme.Customeraccount'}
{/block}

{block name='page_content'}
    {block name='register_form_container'}
      {$hook_create_account_top nofilter}
      <section class="register-form">
        <p>{l s='Already have an account?' d='Shop.Theme.Customeraccount'} <a href="{$urls.pages.authentication}">{l s='Log in instead!' d='Shop.Theme.Customeraccount'}</a></p>
        {render file='customer/_partials/customer-form.tpl' ui=$register_form}
       <div class="checkbox" id="boutonEntrepriseInscription">
            <label for="my_group">
				<input type="checkbox" name="my_group" id="entreprise" value="1"/>
				    {l s='Entreprise partenaire'}
            </label>
    	</div>
      </section>
    {/block}
{/block}

image.thumb.png.3158308c1ca3fb0da5f3aa182a1f60d5.png

Juste que la pas de problème (même si l'intégration doit certainement laisser à désirer.)

Ensuite je doit modifier mon fichier Custumer.php. J'ai mis mes modifs dans la fonction add() comme indiqué sur plusieurs discussion du problème qui parle de ce sujet. (Je précise que les codes indiqué ne fonctionne pas chez moi, voilà pourquoi je créer une discussion.)

 

 

 

 

Voilà où j'ai intégrer mon code 

public function add($autoDate = true, $nullValues = true)
    {
        $this->id_shop = ($this->id_shop) ? $this->id_shop : Context::getContext()->shop->id;
        $this->id_shop_group = ($this->id_shop_group) ? $this->id_shop_group : Context::getContext()->shop->id_shop_group;
        $this->id_lang = ($this->id_lang) ? $this->id_lang : Context::getContext()->language->id;
        $this->birthday = (empty($this->years) ? $this->birthday : (int) $this->years . '-' . (int) $this->months . '-' . (int) $this->days);
        $this->secure_key = md5(uniqid(rand(), true));
        $this->last_passwd_gen = date('Y-m-d H:i:s', strtotime('-' . Configuration::get('PS_PASSWD_TIME_FRONT') . 'minutes'));

        if ($this->newsletter && !Validate::isDate($this->newsletter_date_add)) {
            $this->newsletter_date_add = date('Y-m-d H:i:s');
        }

        if ($this->id_default_group == Configuration::get('PS_CUSTOMER_GROUP')) {
            if ($this->is_guest) {
                $this->id_default_group = (int) Configuration::get('PS_GUEST_GROUP');
            } else {
                $this->id_default_group = (int) Configuration::get('PS_CUSTOMER_GROUP');
            }
        }
	$groupepro = Tools::getValue('entreprise');
        $id_special_group = '4';
        if($groupepro == 1) {
            $this->id_default_group = (int) $id_special_group;
        }
/* Can't create a guest customer, if this feature is disabled */
        if ($this->is_guest && !Configuration::get('PS_GUEST_CHECKOUT_ENABLED')) {
            return false;
        }
        $success = parent::add($autoDate, $nullValues);
        $this->updateGroup($this->groupBox);

        return $success;
    }

Merci pour vos retours qui me seront utile.

 

Bonne soirée.

Link to comment
Share on other sites

Bonjour,

L'approche que tu as mise en place n'est pas bonne de mon point de vue.
Selon ton besoin exprimé plus haut tu souhaites uniquement que ce comportement s'applique lors de la création d'un compte client.
Il est donc inutile de surcharger les fichiers de base.

Le plus simple est de passer par la création d'un module.
Celui-ci pourrait utiliser les hooks displayCustomerAccountForm( pour afficher ton champ ) et actionCustomerAccountAdd ( pour traiter la valeur de ton champ )

Ce vieil article semble toujours fonctionnel en version 1.7.5 : https://www.h-hennes.fr/blog/2015/06/29/prestashop-ajouter-des-champs-a-linscription/

Cordialement,
Hervé

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