что дописать чтоб он срабатывал только при Активации элемента, а не при каждом изменении его любого свойства элемента?!
на OnBeforeIblockElementUpdate проверять активность которая есть до момента апдейта, и потом ее в OnAfterIblockElementUpdate тоже проверять. Тойсть if( $oldActive == 'N' && $arFields['ACTIVE'] == 'Y' ){ }
Подскажите как передать переменную из OnBeforeIblockElementUpdate в OnAfterIBlockElementUpdate ?
сохранить в БД ?
А может в куки?
Глобальная переменная, а можно статическую переменную класса
лучше так не делать))
нет это работа битрикса. я же описал проблему из ядра. используется функция которая не выводит цену с наценкой. она игнорирует наценку вообще
Мне нужно отправлять почтовое уведомление при активации элемента. Обработчик написал, но он отправляет уведомление при любом изменении элемента. Выше посоветовали сделать так: OnBeforeIblockElementUpdate проверять активность которая есть до момента апдейта, и потом ее в OnAfterIblockElementUpdate тоже проверять. Тойсть if( $oldActive == 'N' && $arFields['ACTIVE'] == 'Y' ){ }
можно сразу в OnBeforeIblockElementUpdate отправлять не исползуя OnAfter.
https://dev.1c-bitrix.ru/api_help/iblock/events/oniblockelementupdate.php
https://dev.1c-bitrix.ru/community/blogs/vws/work-in-pairs.php?commentId=86529
можно то можно, но если ошибка при обновлении элемента - письмо отправлено, а изменений по факту нет
И обратите внимание на сообщение @pu6elozed. Событие after вызывается всегда, даже когда реально элемент не изменен (ошибка). Дополнительно проверяйте соответствующий ключ RESULT
Обсуждают сегодня