Jump to content

Affiche un lien en fonction du group du client


Recommended Posts

Bonjour

Je travail Prestashop 1.4 et je voudrai savoir comment afficher un lien supplémentaire en fonction du groupe du client.
le but étant d'afficher ce lien supplémentaire sur la page myaccount.php

merci d'avance

Share this post


Link to post
Share on other sites

Merci Devoox

Je viens de trouver une solutions qui semble marcher

dans mon .tpl :

{if id_default_group == 1}

//// ici code avec liens pour client du groupe 1

{else}

//// ici code avec lien pour autre groupes de client

{/if}

Share this post


Link to post
Share on other sites

Bon correction ça ne marche pas .... :(

Avec ce code il ne m'affiche que les lien des autres groupes quelque soit le groupe du client ...
Quelqu'un a une autre idée ????

merci d'avance

Share this post


Link to post
Share on other sites

  • 1 year later...

Pour pouvoir afficher un lien en fonction du groupe, il faut trouver si le client appartient bien au groupe choisi. Par exemple, si vous voulez afficher dans mon-compte un lien avec les clients uniquement appartenant par exemple au groupe 3 (groupe ID 3), dans le fichier controllers/MyAccountController.php il faut ajouter après la ligne:

public function process()
{

 

Le code suivant:

//On assigne la variable $cookie
 global $cookie;
 //On récupère la méthode pour trouver les groupes d'un client
 $groups=Customer::getGroupsStatic($cookie->id_customer);
 //On teste chaque résultat du tableau
 foreach($groups as $group)
  {
//Si le client appartient au groupe désiré (ici 3)
if ($group==3)
 {
  //On créé la variable smarty qui servira de test
  self::$smarty->assign('mon_groupe','1');
 //On stoppe la boucle, plus besoin de continuer
  break;
 }
  }

 

Ensuite dans le fichier TPL on va simplement tester si la variable existe et si oui on affiche le texte spécifique pour le groupe 3:

{if $mon_groupe}test si j'appartiens au groupe 3{/if}

 

Testé sur 1.4.9

Edited by franckm1000 (see edit history)

Share this post


Link to post
Share on other sites

  • 4 months later...
  • 1 year later...
  • 1 year later...
  • 3 months later...

Bonjour,

Il vous faut override la méthode "initContent" du FrontController et y rajouter:

// On récupère le groupe par défaut
$customerDefaultGroup = Group::getCurrent();

// On récupère tout les groupes de l'utilisateur.		
$customerGroups = Customer::getGroupsStatic($this->context->customer->id);

// On assigne nos variables groupes à smarty
$this->context->smarty->assign(array(
	'customerDefaultGroup' => $customerDefaultGroup,
	'customerGroups' => $customerGroups
));

Vous aurez alors accès à 2 nouvelles variables dans vos templates:

$customerDefaultGroup: qui contiendra le groupe par défaut de l'utilisateur.

$customerGroups: qui contiendra un tableau de tout les groupes auquel l'utilisateur appartient.

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More