Подписка при оформлении заказа неавторизованным пользователям в Битрикс
Последние записи
Когда у вас есть живой интернет-магазин и на нем идут постоянные покупки "заглянувшими" покупателями, не хочется чтобы это была его первая и последняя покупка, поэтому было бы не плохо предложить ему подписаться на новости и акции , вдруг его еще что нибудь заинтересует
Для этого идем в Магазин -> Настройки -> Свойства заказа -> Список свойств
и создаем поля типа Y/N. Мнемонический код ставим по своему желанию. Но запоминаем айди свойства, оно нам понадобится для обращения к массиву свойств заказа $arFields['ORDER_PROP']
Далее в файле init.php разместим обработчик, который подпишет пользователя на все рубрики, вы можете подписать естественно на одну или две по своему желанию, просто выставив свои id в массиве $RUB_ID .
AddEventHandler('sale', 'OnOrderAdd', Array("OnSaleComponentOrderCreatedClass", "Subscrible"));
class OnSaleComponentOrderCreatedClass
{
function Subscrible($ID, &$arFields)
{
if($arFields['ORDER_PROP'][23]=='Y') {// если галка на подписку стоит
$USER = false;
CModule::IncludeModule("subscribe");//Подключаем модуль подписки
$RUB_ID = array();
$rsRubric = CRubric::GetList(array(), array("ACTIVE" => "Y"));
while($arRubric = $rsRubric->GetNext()) {
$RUB_ID[] = $arRubric['ID'];
}
/* создадим массив на подписку */
$subscr = new CSubscription;
$arFields = Array(
"USER_ID" => $USER, //Создаем анонимную подписку без привязки к пользователю, но вы можете указать любой айди
"FORMAT" => "html/text",
"EMAIL" => $arFields['ORDER_PROP'][2],//email пользователя у меня в свойстве номер 2
"ACTIVE" => "Y",
"RUB_ID" => $RUB_ID,
"SEND_CONFIRM" => "N",
"CONFIRMED" => "Y"
);
$subscr->Add($arFields, SITE_ID);
}
}
}
Комментарии