web-dev-qa-db-fra.com

Créer un utilisateur avec PHP avec "Receive System Emails" défini sur no

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?

2
dawoodman71

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é :)

4
Joomler