Помощь Битрикс
◄ вернуться
Счётчик в рассылку
Этот код записывает в файл пользователей, которые открыли письмо-рассылку.
В корневой папке сайта надо создать папку "po_stat_log" и в ней файл "in_log.php"
in_log.php:
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); $image = imagecreatetruecolor(1,1) or die('Cannot create image'); imagefill($image, 0, 0, 0xffffff); // счетчик $rsUser = CUser::GetByID($_GET["user_id"]); $arUser = $rsUser->Fetch(); $file = fopen ($_SERVER['DOCUMENT_ROOT']."/po_stat_log/posting_".$_GET["code"].".txt","a+"); if($file ) { $str = $_GET["code"]."; ".date("d.m.Y H:i:s")."; ".$temail."; ".$arUser["LAST_NAME"]."; ".$arUser["NAME"]."; ".$arUser["LOGIN"]."; ".$_GET["user_id"]."\r\n"; fwrite( $file, $str); fclose ($file); } header('Content-type: image/png'); imagepng($image); imagedestroy($image); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); ?>
создаем обработчик события "BeforePostingSendMail" и добавляем в /bitrix/php_interface/init.php
обработчик события:
AddEventHandler("subscribe", "BeforePostingSendMail", "beforePostingSendMailHandler"); function beforePostingSendMailHandler($arFields){ $arFields["BODY"] = str_replace("#EMAIL#", $arFields["EMAIL"], $arFields["BODY"]); //$USER_NAME = "Подписчик"; //Попробуем найти подписчика. $rs = CSubscription::GetByEmail($arFields["EMAIL"]); if($ar = $rs->Fetch()){ $arFields["BODY"] = str_replace("#CONFIRM_CODE#", $ar["CONFIRM_CODE"], $arFields["BODY"]); $arFields["BODY"] = str_replace("#ID#", $ar["ID"], $arFields["BODY"]); $arFields["BODY"] = str_replace("#USER_EMAIL#", $ar["EMAIL"], $arFields["BODY"]); $arFields["BODY"] = str_replace("#USER_ID#", $ar["USER_ID"], $arFields["BODY"]); } //$arFields["BODY"] = str_replace("#NAME#", $USER_NAME, $arFields["BODY"]); return $arFields; }
В выпуск рассылки надо добавить счётчик, который отработает на стороне пользователя. "КОД РАССЫЛКИ" при этом должен быть уникальным (латынь, цифра, дефис, подчёркивание без пробелов).
Счётчик:
<img src="http://САЙТ/po_stat_log/in_log.php?code=КОД_РАССЫЛКИ&user_id=#USER_ID#&temail=#EMAIL#"/>
При просмотре рассылки пользователем в лог-файл "/po_stat_log/posting_КОД_РАССЫЛКИ.txt" будут занесены данные пользователя в формате: "код рассылки; дата; email; фамилия; имя; логин; id пользователя"
Пример лог-файла:
test8; 19.06.2015 08:30:00; maik007@rambler.ru; Костюк; Эдуард; 4240298; 2620 test8; 19.06.2015 06:12:19; zolotuhina_tatya@mail.ru; Золотухина; Татьяна; 4841579; 604 test8; 18.06.2015 23:00:34; elens19@mail.ru; Соловьева; Елена; 4889328; 1142 test8; 18.06.2015 19:55:52; vitalijmisko@mail.ru; Мисько; Виталий; 4775335; 2938 test8; 18.06.2015 16:43:10; hripupu@mail.ru; Ломова; Инесса; 5034171; 11532 test8; 18.06.2015 15:42:57; okrina@mail.ru; Дюрягина; Светлана; 3947842; 6294 test8; 18.06.2015 15:33:52; zenonovna62@mail.ru; Карась; Анна; 4170314; 1904 test8; 18.06.2015 15:09:16; tanyacoral79@gmail.com; Ziegler; Tatyana; 3901919; 475 test8; 18.06.2015 13:45:30; vikanikatoday@mail.ru; Попова; Виктория; 5021566; 6447 test8; 18.06.2015 12:49:20; n.limanskaya@mail.ru; Лиманская; Наталья; 4445377; 8267 test8; 18.06.2015 12:28:03; anilirika@yandex.ru; Языкова; Евгения; 3988079; 1433 test8; 18.06.2015 12:06:30; mosina10@mail.ru; Мосина; Ольга; 4145492; 640 test8; 18.06.2015 11:33:28; masha_kerch@meta.ua; Кривошеева; Мария; 4596435; 410 test8; 18.06.2015 11:32:55; damshinskiy@mail.ru; Волков; Григорий; 4987695; 3272 test8; 18.06.2015 11:22:51; kazarezov@ukr.net; Казарезов; Дмитрий; 4796253; 8175 test8; 18.06.2015 11:20:18; nataliharina@mail.ru; Харина; Наталья; 4036004; 7687 test8; 18.06.2015 11:18:17; orlova.club@mail.ru; Орлова; Лилия; 3910094; 2159 test8; 18.06.2015 11:11:10; kmolch@bk.ru; Молчанова; Ксения; 4832687; 1484 test8; 18.06.2015 10:47:57; irina36mk@mail.ru; Маланухо; Ирина; 4213662; 1183 test8; 18.06.2015 10:16:54; pobalde@gmail.com; Гриценко; Андрей; 4809848; 422 test8; 18.06.2015 09:55:20; titova_gold@mail.ru; Титова; Ольга; 3954770; 1417 test8; 18.06.2015 09:46:48; lilita04@yandex.ru; Гераскина; Лилия; 4958177; 11739