Fqyeh29
@Fqyeh29
↓ ИМХО ↓

Как заставить работать обработчик событий битрикс?

Вот такой код в init.php

<?
AddEventHandler("crm", "OnBeforeCrmLeadAdd", "CheckOnBeforeCrmLeadAdd");
AddEventHandler("crm", "OnAfterCrmLeadAdd", "CheckOnBeforeCrmLeadAdd");
AddEventHandler("crm", "OnAfterExternalCrmLeadAdd", "CheckOnBeforeCrmLeadAdd");

function CheckOnBeforeCrmLeadAdd(&$arFields) {
file_put_contents($_SERVER["DOCUMENT_ROOT"]."/log_lead.log",print_r($arFields,true)."\n",FILE_APPEND);
}


И обработчик не работает, функция не стартует. Что не так?...
Лиды добавляются так:

$obLead = new CCrmLead(false);
    $ID = $obLead->Add($arLead, true, array("REGISTER_SONET_EVENT" => true, "DISABLE_USER_FIELD_CHECK" => true));


Вроде все как в доках, но не работает...
  • Вопрос задан
  • 728 просмотров
Пригласить эксперта
Ответы на вопрос 1
gromdron
@gromdron Куратор тега Битрикс24
Работаю с Bitrix24
Нужно больше контекста.

Я сейчас поставил вот такой код в PHP консоль:
AddEventHandler("crm", "OnBeforeCrmLeadAdd", "CheckOnBeforeCrmLeadAdd");
AddEventHandler("crm", "OnAfterCrmLeadAdd", "CheckOnBeforeCrmLeadAdd");
AddEventHandler("crm", "OnAfterExternalCrmLeadAdd", "CheckOnBeforeCrmLeadAdd");

function CheckOnBeforeCrmLeadAdd(&$arFields) {
file_put_contents($_SERVER["DOCUMENT_ROOT"]."/log_lead.log",print_r($arFields,true)."\n",FILE_APPEND);
}

\Bitrix\Main\Loader::IncludeModule('crm');

$obLead = new \CCrmLead(false);
$ID = $obLead->Add(
	$leadfields = ['TITLE'=>'test'],
	true,
	array("REGISTER_SONET_EVENT" => true, "DISABLE_USER_FIELD_CHECK" => true)
);


Файл создался.

Проверь права на папку куда записываешь файл и проверь подключен ли модуль crm на странице.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы