Je crée un nouvel utilisateur en utilisant ces données:
jimport('joomla.application.component.helper');
$params = 'com_users';
$usersParams = JComponentHelper::getParams($params);
$new_user = JFactory::getUser(0);
$config = JComponentHelper::getParams('com_users');
$defaultUserGroup = $config->get('new_usertype', 2);
$jdata = array(
"name" => $name,
"username" => $email,
"password" => $password,
"password2" => $password,
"email" => $email,
"sendEmail" => 1,
"groups" => array($defaultUserGroup)
);
$useractivation = $usersParams->get('useractivation');
if ($useractivation === 1) {
jimport('joomla.user.helper');
$jdata['activation'] = JUtility::getHash(JUserHelper::genRandomPassword());
$jdata['block'] = 1; // block the user
} else {
$jdata['block'] = 0; // don't block the user
}
//Write to database
if (!$new_user->bind($jdata)) {
throw new Exception("Could not bind data. Error: " . $new_user->getError());
return false;
}
if (!$new_user->save()) {
throw new Exception("Could not save user. Error: " . $new_user->getError());
return false;
}
Cela fonctionne parfaitement, mais les nouveaux utilisateurs sont créés avec l'option "Recevoir les courriels système" sur Oui, ce qui signifie que tous les nouveaux utilisateurs reçoivent les courriels de l'administrateur. Comment puis-je désactiver cette fonctionnalité lors de la création d'un nouvel utilisateur de cette manière?
Dans $jdata
tableau que vous définissez sendEmail
sur 1
qui active la "réception des courriels système".
Il suffit de mettre sendEmail
sur 0
et vous avez terminé :)