Буквально пару недель назад решал такой вопрос, лови
Код |
---|
на входе
$email, $name, $listId
далее
$rezIdEmail = Bitrix\Sender\ContactTable::getList($parameters = array('select' => array('ID'), 'filter' => array('CODE' => $email)));
if($resultIdEmail = $rezIdEmail->Fetch()) {
if($resultIdEmail['ID']>0) {
$rez = Bitrix\Sender\Entity\Contact::getList( array('select' => array('ID'), 'filter' => array('=CODE' => $email) ) );
if($rezView = $rez->fetch()) {
$intIdEmail = intval($rezView['ID']);
Bitrix\Sender\ContactListTable::addIfNotExist($intIdEmail, $listId);
return;
}
}
}
$contact = (new Entity\Contact())
->set('NAME', $name)
->set('CODE', $email)
->set('TYPE_ID', Recipient\Type::EMAIL);
if (!$contact->save()) {
$rez = Bitrix\Sender\Entity\Contact::getList( array('select' => array('ID'), 'filter' => array('=CODE' => $email) ) );
if($rezView = $rez->fetch()) {
$intIdEmail = intval($rezView['ID']);
Bitrix\Sender\ContactListTable::addIfNotExist($intIdEmail, $listId);
}
return;
}
if (!$contact->addToList($listId)) {
return;
} |
С битриксом работаю 3 месяца только, возможно можно решить иначе более грамотно, но это уже опытные подскажут