OnBeforeEventSend - замена данных для макроса в почтовом шаблоне
Что то я долго искал решение, а как оказалось проблема была в том что входные переменные нужно передавать по ссылке!
Если нужно подставить свое значение в макрос (к примеру #AUTHOR#) почтового шаблона, например компонента обратной связи bitrix:main.feedback
то делается это так:
Отладку удобно проводить через custom_mai
Что то я долго искал решение, а как оказалось проблема была в том что входные переменные нужно передавать по ссылке!
Если нужно подставить свое значение в макрос (к примеру #AUTHOR#) почтового шаблона, например компонента обратной связи bitrix:main.feedback
то делается это так:
AddEventHandler('main', 'OnBeforeEventSend', "OnBeforeEventSendHandler"); function OnBeforeEventSendHandler(&$arFields, &$arTemplate) { global $USER; if($USER->IsAuthorized()) { $arFields["AUTHOR"] = 'Юзер залогинен: '.$USER->GetID().' ('.$USER->GetLogin().') '.$USER->GetFullName().', поле формы: '.$arFields["AUTHOR"]; }else{ $arFields["AUTHOR"] = 'Юзер не залогинен, поле формы: '.$arFields["AUTHOR"]; } } |
//отладка отправляемых сообщений с сайта if (!function_exists('custom_mail')) { function custom_mail($to, $subject, $body, $headers) { $f = fopen($_SERVER["DOCUMENT_ROOT"] . "/__maillog.txt", "a+"); fwrite($f, print_r(array('TO' => $to, 'SUBJECT' => $subject, 'BODY' => $body, 'HEADERS' => $headers), 1) . "\n========\n"); fclose($f); return mail($to, $subject, $body, $headers); } } |