Bonjour,
je rencontre un souci similaire au précédent, mon plugin ne se lance pas lorsque j'édite un utilisateur dans hikamarket, je précise qu'il fonctionne très bien lorsque j'édite l'utilisateur dans le backend joomla.
J'ai appliqué la solution de la dernière fois, à savoir que j'ai créé mon plugin en system et non en hikamarket ou hikashop.
J'ai testé aussi avec le trigger onBeforeCompileHead, il se lance bien depuis hikamarket, mais pas le trigger onAfterUserUpdate.
Ce plugin fait juste la liaison entre un champ personnalisé user_group pour gérer le groupe utilisateur depuis l'édition par le vendeur.
Merci d'avance pour votre réponse.
Voici mon code :
<?php
defined('_JEXEC') or die;
class plgSystemUser_group extends JPlugin
{
function setUserGroup($user){
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$conditions = array(
$db->quoteName('user_id').' = '.$db->quote(self::getUserCmsId($user->user_id)),
$db->quoteName('group_id').' != '.$db->quote(8),
$db->quoteName('group_id').' != '.$db->quote(2),
);
$query->delete($db->quoteName('#__user_usergroup_map'));
$query->where($conditions);
$db->setQuery($query);
$result = $db->execute();
$query = $db->getQuery(true);
$columns = array(
'user_id',
'group_id',
);
$values = array(
$db->quote(self::getUserCmsId($user->user_id)),
$db->quote($user->user_group),
);
$query
->insert($db->quoteName('#__user_usergroup_map'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
$db->setQuery($query);
$db->execute();
}
function getUserCmsId($user_id){
$db = JFactory::getDbo();
$db->setQuery('SELECT user_cms_id FROM #__hikashop_user WHERE user_id = '.$user_id);
$user_cms_id = $db->loadResult();
return $user_cms_id;
}
public function onAfterUserCreate($user){
self::setUserGroup($user);
}
public function onAfterUserUpdate($user){
// echo'<pre>';var_dump($user);echo'</pre>';exit;
self::setUserGroup($user);
}
public function onBeforeCompileHead(){
}
}