Когда у вас есть живой интернет-магазин и на нем идут постоянные покупки "заглянувшими" покупателями, не хочется чтобы это была его первая и последняя покупка, поэтому было бы не плохо предложить ему подписаться на новости и акции , вдруг его еще что нибудь заинтересует :)
Для этого в шаблоне компонента sale.order.ajax в файле props.php разместим код, галку в checkbox по умолчанию оставим включенной.
PrintPropsForm($arResult["ORDER_PROP"]["USER_PROPS_N"]); PrintPropsForm($arResult["ORDER_PROP"]["USER_PROPS_Y"]); // разместим после этих строк ?> <?if(!$USER->IsAuthorized()):?> <tr> <td valign="top" align="right"> <?=GetMessage("SOA_NEWS")?> </td> <td> <input type="hidden" name="NEWSCHECKED" value="N"> <input type="checkbox" name="NEWSCHECKED" value="Y" <?if($_REQUEST['NEWSCHECKED'] != 'N'):?>checked="checked"<?endif;?> /> </td> </tr> <?endif;?>
Его вы можете разместить в любом месте , главное что бы он был в теге <form> , эта строка 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); } }
Вот собственно и все , используйте на здоровье только не мучайте пользователей спамом :)
Опубликовано: 3 июля 2012
|
|