Jump to content

Modification du groupe client après inscription


Recommended Posts

Bonjour,

 

Je ne sais pas si je poste au bon endroit.

 

Je suis en train de faire un site réservé aux professionels, les clients doivent être inscrits et validés pour avoir accès aux tarifs du site. J'ai un module qui me permet de valider ou non mes clients en rentrant directement dans leur fiche client. Lorsque je rentre dans la fiche d'un client, j'ai deux boutons un qui valide le client et l'autre qui le désactive.

Or j'ai apporté quelques petites modifications à ce module.

Mon but était de faciliter un peu mon travail par la suite. Pour cela, j'ai crée un nouveau groupe ou le client arrive lors de son inscription ( groupe 4). Et je travaille à ajouter des fonctions à mon bouton "valider". Je souhaite que quand je valide le client celui ci aille se loger dans le groupe natif de prestashop " client " qui a pour ID le numéro 3.

 

Je vous partage mon code  de bouton pour "valider" mon client:

if (Tools::isSubmit('approvalgrant'.$this->table)) {
			
			if($id = (int)Tools::getValue($this->identifier)) {
				
				if ($this->tabAccess['edit'] === '1') {
					
					$permissions = new CustomerPermission($id);
					$permissions->is_approved = CustomerPermission::APPROVAL_GRANTED;
					
					if (!$permissions->save())
						Tools:('Unable to save permissions');
					
					$is_confirmed = $permissions->is_confirmed == CustomerPermission::CONFIRMATION_CONFIRMED;
					$is_approved = $permissions->is_approved == CustomerPermission::APPROVAL_GRANTED;
					$permissions->id_group = 3;/*modifie ps_customer_permission*/
					$permissions->update();
							
					$customer = new Customer($permissions->id);
					$customer->active = $is_confirmed && $is_approved;
					$customer->id_default_group = 3; /*OK change groupe default ps_customer*/
					$customer->id_group = 3;/* modifie ps_customer_group n agit pas si cle unique*/
					$customer->update();
				
					}

Je réussie à modifier mes deux tables : ps_customer et ps_customer_permission ( dépendant de mon module). Mais un problème persiste sur la table ps_customer_group.

Mon avant dernière ligne de code me rajoute une ligne dans ma table ps_customer_group et du coup mon client se retrouve affilié à son groupe d'origine ( groupe 4) et aussi au groupe 3. J'ai éssayé de passer l'ID en unique pour cette table mais du coup le code ne marche plus.

J'ai tenté de l'écrire de diverses manières possibles mais malheureusement mes capacités sont limitées en code.

Je me tourne vers vous dans un dernier espoir, j'ai passé des heures à essayer de trouver une solution en vain.

Peut être une une âme charitable trouvera la solution à mon problème.

Merci d'avance de votre aide.

 

Link to comment
Share on other sites

Bonjour,

 

Je dirais qu'il faut que tu nettoie les groupes de ton utilisateurs avant de saisir les nouveaux groupes

	$customer->cleanGroups();
	$customer->addGroups(array((int)Configuration::get('PS_CUSTOMER_GROUP')));

De cette manière le client ne sera que dans un seul groupe.

Link to comment
Share on other sites

Bonjour,

 

Tout d'abord merci pour cette réponse vraiment très rapide.

 

Et après milles mercis pour avoir trouvé la solution à mon problème c'est FANTASTIQUE.

 

Je n'avais même pas imaginé prendre le problème dans ce sens.

 

:D

 

Je n'ai pas de mot pour decrire ma joie et mon soulagement alors MERCI ^^

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...