У меня есть (в настоящее время работающий) плагин, который создает пользователя в сторонней системе, когда пользователь регистрируется. Пока это работает.user-> setParam in onUserAfterSave плагин не имеет эффекта
Я пытаюсь теперь добавить параметры пользователя, чтобы сохранить идентификатор третьей стороны, но это, кажется, не работает:
function onUserAfterSave($user,$isNew,$success,$msg=''){
if(!$isNew || ! $success){
return;
}
jimport('joomla.log.log');
$res = someThirdPartyCall();
//Res is valid here
JLog::add("Res ".print_r($res,true), JLog::WARNING, 'jerror');
$userOb = JUser::getInstance($user['id']);
$userOb->setParam('sugarid', $res['id']);
//User ob is valid here
JLog::add("UserOb ".print_r($userOb,true), JLog::WARNING, 'jerror');
$saveRes = $userOb->save();
//Result is true. Error array is empty.
JLog::add("Result ".print_r($saveRes,true), JLog::WARNING, 'jerror');
JLog::add("Errors ".print_r($userOb->getErrors(),true), JLog::WARNING, 'jerror');
}
Все выглядит отлично, никаких ошибок или тому подобные. Единственное, что не работает, это то, что параметры не заданы в db. Это потому, что я пытаюсь сохранить пользователя в onUserAfterSave
?
JUser autoloads. Единственная часть, которая не является JAuthenticate, и вы должны сделать JLoader для этого на данный момент, поскольку она не устарела. – Elin