Документация для разработчиков
Темная тема

Update

Описание и параметры

mixed
CSubscription::Update(
	int ID,
	array arFields,
	string SITE_ID = SITE_ID
);

Метод изменяет данные подписки. Если изменяется адрес подписки, то метод снимает подтверждение с подписки и генерирует событие для отправки письма с кодом подтверждения подписки (если это явно не запрещено). Если подписка не подтверждена, а массив полей включает в себя правильный CONFIRM_CODE, то подписка подтверждается. Метод нестатический.

Параметры

ПараметрОписаниеC версии
ID Идентификатор подписки.
arFields Массив со значениями полей объекта "Подписка". Дополнительно могут быть указаны поля:
   RUB_ID - массив идентификаторов рассылок, на которые подписывается адрес;
   SEND_CONFIRM - отправлять ли письмо с кодом подтверждения подписчику при изменениии адреса (Y/N).
SITE_ID Идентификатор сайта, по которому определяется шаблон письма о подтверждении подписки. По умолчанию параметр принимает значение текущего сайта. Обязателен при использовании RUB_ID. Если ALL_SITES указан в массиве $arFields, то SITE_ID можно не указывать 4.0.0

Возвращаемые значения

В случае успешного изменения возвращается true. В противном случает возвращается false, и переменная класса LAST_ERROR содержит сообщение об ошибке (так же возбуждается исключение CMain::ThrowException).

При успешном результате переменная класса LAST_MESSAGE содержит строку-код информационного сообщения. Возможные значения:
   "CONF" - подписка подтверждена;
   "SENT" - сгенерировано событие для отправки письма с кодом подтверждения.

Примеры использования

$subscr = new CSubscription;
//confirmation code from letter or confirmation form
if($CONFIRM_CODE <> "" && $ID > 0 && empty($action))
{
	if($str_CONFIRMED <> "Y")
	{
		//subscribtion confirmation
		if($subscr->Update($ID, array("CONFIRM_CODE"=>$CONFIRM_CODE)))
			$str_CONFIRMED = "Y";
		$strWarning .= $subscr->LAST_ERROR;
		$iMsg = $subscr->LAST_MESSAGE;
	}
}

//*************************
//form actions processing
//*************************
if($ID > 0)
{
	if($action == "unsubscribe" && CSubscription::IsAuthorized($ID))
	{
		//unsubscription
		if($subscr->Update($ID, array("ACTIVE"=>"N")))
		{
			$str_ACTIVE = "N";
			$iMsg = "UNSUBSCR";
		}
	}
	if($action == "activate" && CSubscription::IsAuthorized($ID))
	{
		//activation
		if($subscr->Update($ID, array("ACTIVE"=>"Y")))
		{
			$str_ACTIVE = "Y";
			$iMsg = "ACTIVE";
		}
	}
}


© «Битрикс», 2001-2024, «1С-Битрикс», 2024