Когда у вас есть живой интернет-магазин и на нем идут постоянные покупки "заглянувшими" покупателями, не хочется чтобы это была его первая и последняя покупка, поэтому было бы не плохо предложить ему подписаться на новости и акции , вдруг его еще что нибудь заинтересует
Для этого в шаблоне компонента sale.order.ajax в файле props.php разместим код, галку в checkbox по умолчанию оставим включенной.
Его вы можете разместить в любом месте , главное что бы он был в теге <fo rm> , эта строка GetMessage("SOA_NEWS" служит за вывод фразы "Подпишитесь на акции" .
Далее в файле init.php разместим обработчик, который подпишет пользователя на все рубрики , вы можете подписать естественно на одну или две по своему желанию, просто выставив свои id в массиве $RUB_ID .
// подпишем пользователя при его согласии
AddEventHandler('sale', 'OnSaleComponentOrderOneStepComplete', 'Subscrible');
function Subscrible($ID, &$arFields)
{
// если галка на подписку стоит
if($_REQUEST['NEWSCHECKED'] == 'Y') {
// в моей форме email находилось именно в поле с именем ORDER_PROP_2
$EMAIL = $_REQUEST['ORDER_PROP_2'];
$USER = $arFields['USER_ID'];
// получим все активные рубрики
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" => $EMAIL,
"ACTIVE" => "Y",
"RUB_ID" => $RUB_ID,
"SEND_CONFIRM" => "N",
"CONFIRMED" => "Y"
);
$idsubrscr = $subscr->Add($arFields, SITE_ID);
}
}
Вот собственно и все , используйте на здоровье только не мучайте пользователей спамом Первоисточник тут.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».