Gaëtan Brunin Posted September 4, 2019 Share Posted September 4, 2019 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} 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 More sharing options...
hhennes Posted September 5, 2019 Share Posted September 5, 2019 (edited) 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 September 5, 2019 by hhennes (see edit history) 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