Jump to content

Ajout Groupe Client Inscription


Recommended Posts

Je viens de voir qu'il y'avais une erreur dans mon article... désolé Il a été mis à jour.
La fonction suivante a été changée

/**
     * Traitement des nouveaux champs du formulaire d'inscription
     */
    public function hookActionCustomerAccountAdd($params)
    {
        
        //On récupère notre variable groupe
        $id_customer_group = Tools::getValue('customer_group','');
        
        //Si elle n'est pas vide on ajoute le client au groupe
        if ( $id_customer_group != '')
            $params['newCustomer']->addGroups(array($id_customer_group));

    }
Link to comment
Share on other sites

Oui cela fonctionne à présent.

Pour ma part, je garde les 3 groupes de départ, donc j'ai mis en commentaire :

//unset($groups[0]);
//unset($groups[1]);
//unset($groups[2]);

 

Le problème est que le client créé a 2 groupes : surement celui par défaut et le groupe sélectionnée.

Est-ce qu'il y a une ligne de code pour supprimé le groupe par défaut?

Merci :)

Link to comment
Share on other sites

Dans ce cas il suffit de supprimer les groupes précédents du client avant d'assigner le nouveau groupe.

   /**
     * Traitement des nouveaux champs du formulaire d'inscription
     */
    public function hookActionCustomerAccountAdd($params)
    {
        
        //On récupère notre variable groupe
        $id_customer_group = Tools::getValue('customer_group','');
        
        //Si elle n'est pas vide on ajoute le client au groupe
        if ( $id_customer_group != '') {
            //Suppression des groupes actuels du client
            $params['newCustomer']->cleanGroups();
            //Ajout uniquement du nouveau groupe
            $params['newCustomer']->addGroups(array($id_customer_group));
        }

    }
Link to comment
Share on other sites

ok super!!!! :)

 

J'avais fait une version un peu plus trash en cherchant :

/**
     * Traitement des nouveaux champs du formulaire d'inscription
     */
    public function hookActionCustomerAccountAdd($params)
    {
        
        //On récupère notre variable groupe
        $id_customer_group = Tools::getValue('customer_group','');
        
       
            
        $id_shop = $params['newCustomer']->id_shop;
        $id_client = $params['newCustomer']->id;
            
        Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'customer_group WHERE id_customer='.(int)$id_client);
        
        
         //Si elle n'est pas vide on ajoute le client au groupe
        if ( $id_customer_group == '')
            $id_customer_group=1;
            
        $params['newCustomer']->addGroups(array($id_customer_group));
        
        Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'customer SET id_shop_group='.(int)$id_customer_group.', id_default_group='.(int)$id_customer_group.' WHERE id_customer='.(int)$id_client);

    }

Merci beaucoup pour votre aide!

Bonne continuation :)

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