Как получить значение переменной из одного класса в другой?
Не знаю ваш фреймфорк, но могу предложить записать переменную $WORKEREMAIL в свойство класса MyAdmin и т.к. он наследуется классом MyClass, то это свойство будет находиться и в вашем классе.
то есть, в методе OnAfterIBlockElementAddHandler добавьте строчку $this->WORKEREMAIL = $WORKEREMAIL; а в методе OnBeforeEventAddHandler берите это свойство $this->WORKEREMAIL;
Во-первых, у вас путаница в коде
.Во-вторых (по сути вопроса), исходя из очерёдности наступления событий:
— сначала вызоветсяCEvent::Send( 'THANKS', $arrSite, $arSend );
— потом наступит событиеOnBeforeEventAdd
— которое вызовет функциюOnBeforeEventAddHandler ( &$event, &$lid, &$arFields )
При чём в этой ветке вызовов:
• &$event УЖЕ равно'THANKS' и значит его не нужно переопределять (а даже можно добавить проверку, чтобы не резались все почтовые события поголовно);
• &$arFields будет содержать ссылку на массив $arSend, в который вы и можете поместить нужную переменную. Использовать как вам нужно и почистить (или не чистить — поля, которых нет в почтовом шаблоне просто проигнорируются).В-третьих: что-то мне не нравится такая логика (либо не очевидно то, что вы пытаетесь сделать). Если $WORKEREMAIL задумано как одно из полей в письме, его нужно просто учесть в почтовом шаблоне и передать сразу в CEvent::Send( 'THANKS', $arrSite, $arSend ); без последующего перехвата.
Сюда же: $arSend составлен неправильно. Тут должен быть массив ключ–значение.