web-dev-qa-db-fra.com

Définir VM shoppergroup pour l'invité

Je dois définir le groupe d'acheteurs pour les utilisateurs invités en fonction d'un paramètre de région (qu'ils ont choisi).

Je pensais qu'utiliser les éléments suivants dans un plugin système (onAfterDispatch) fonctionnerait:

// Getting a registered user and piggy-backing on that.
$user = JFactory::getUser(801);
/** @var TableVmusers $vm_user */
$vm_user_model = new VirtueMartModelUser();
$vm_user = $vm_user_model->getUser();
$vm_user->JUser = $user;
$region = JFactory::$application->input->get('region');
$vm_user->shopper_groups = [0 => $region];

Mais cela ne semble pas fonctionner.

1
Anriëtte Myburgh

J'ai découvert que les groupes de clients sont complètement liés à un utilisateur connecté et ne peuvent pas être manipulés dans votre pile d'événements (même avec un plugin Système). Vous devez être connecté en tant qu'utilisateur et attribuer à cet utilisateur un groupe de clients dans le composant Virtuemart.

En fin de compte, j'ai créé un utilisateur pour chacun des groupes d'acheteurs que je souhaitais utiliser, puis à l'aide d'un plug-in.

Un travail épouvantable, mais je ne suis toujours pas convaincu qu'il existe un autre moyen.

1