КОНЬЯКОВ.ру

Аудит, Разработка, ИБ, Поддержка и SEO сайтов

Bitrix — Отписка в один клик

1) Создаем директорию (если она еще не создана) include в директории /bitrix/php_interface/.

2)Создаем в директории /bitrix/php_interface/include/ файл unsubscribe_init.php со следующим содержанием (см.исходный код):


<?
// регистрируем обработчик
AddEventHandler("subscribe", "BeforePostingSendMail", Array("MyClass2", "BeforePostingSendMailHandler"));

class MyClass2
{
// создаем обработчик события "BeforePostingSendMail"
function BeforePostingSendMailHandler(&$arFields)
{

$USER_NAME = "Подписчик";
//Попробуем найти подписчика.
$rs = CSubscription::GetByEmail($arFields["EMAIL"]);
if($ar = $rs->Fetch())
{
if(intval($ar["USER_ID"]) > 0)
{
$rsUser = CUser::GetByID($ar["USER_ID"]);
if($arUser = $rsUser->Fetch())
{

$USER_NAME = $arUser["LAST_NAME"]." ".$arUser["NAME"]." ".$arUser["SECOND_NAME"];
}
}
}
$arFields["BODY"] = str_replace("#NAME#", $USER_NAME, $arFields["BODY"]);
$arFields["BODY"] = str_replace("#CONFIRM_CODE#", $ar["CONFIRM_CODE"], $arFields["BODY"]);
$arFields["BODY"] = str_replace("#ID#", $ar["ID"], $arFields["BODY"]);

return $arFields;
}
}
?>

3) После этого в файле /bitrix/php_interface/init.php прописываем следующее (см.исходник):


require($_SERVER['DOCUMENT_ROOT']."/bitrix/php_interface/include/unsubscribe_init.php");

4) В рассылке добавляем:


<a href="http://www.example.org/bitrix/subscribe/edit.php?ID=#ID#&CONFIRM_CODE=#CONFIRM_CODE#&action=unsubscribe">Отказаться от уведомлений</a>

Теперь при отправке рассылок через Bitrix, в письме будет присутствовать ссылка на отказ от уведомлений.

Всё просто.

Предыдущая

Новый дизайн Яндекса

Следующая

How to Kill Zombie Process?

2 Comments

  1. Леонид Семенов

    День добрый, ваша доработка отписки актуальна? Хочу добавить себе на сайт

  2. admin

    Да, всё актуально. Добавляйте.

© 2007–2017, konyakov.ru