我有一个(当前工作的)插件,当用户注册时,它会在第三方系统上创建一个用户。到目前为止,这工作正常。
我现在正在尝试向用户添加一个参数来存储第三方 ID,但这似乎不起作用:
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');
}
一切看起来都很棒,没有错误或类似的东西。唯一不起作用的是参数未在数据库中设置。这是因为我试图将用户保存在 中onUserAfterSave
吗?