Aborrol

Aborrol

С нами с 16 декабря 2018; Место в рейтинге пользователей: #369

AjaxForm placeholder в emailTo

Нужно сделать отправку почты по адресам выбранным в селекте формы
Но если передается список email адресов то почта не отправляется.
[FormIt] Произошла ошибка при попытке отправить почту. Пожалуйста, введите хотя бы один адрес e-mail получателя.
Если этот список прописать напрямую в &emailTo, то все отправляется корректно.
На всякий случай вызов формы и хук
[[!AjaxForm?
    &snippet=`FormIt`
    &form=`tpl.order_form`
    &hooks=`groupSelector,FormItSaveForm,email`
    &emailSubject=`[[+titleform]]`
    &emailTo=`[[+emailAddr]]`
    &validate=`name:required,phone:required`
    &validationErrorMessage=`В форме содержатся ошибки!`
    &successMessage=`Сообщение успешно отправлено`
]]
хук
<?php
$resources = $modx->getCollection('modResource',array('parent' => 11));
foreach ($resources as $res) {
$title= $res->get('pagetitle');
	if($hook->getValue('service') == $title){
		$hook->setValue('emailAddr',$res->getTVValue('recipients'));
		$modx->log(1, 'message: '.$res->getTVValue('recipients'));
		return true;
	}
}
	$modx->log(1, 'message: '."Почта не найдена для региона");
	return true;
Открыл хук Email
Сделал вывод что он получает на вход emailTo
/www/core/components/formit/src/FormIt/Hook/Email.php : 226) [FormIt] [[+emailAddr]]
т.е. парсер не обрабатывает плейсхолдер.
Временно решил прописав в хук email обработку поля emailAddr
$emailAddr= $this->hook->getValue('emailAddr', $this->formit->config, '');
        if(!empty($emailAddr)){
            $emailTo = $emailAddr;
        }
Но как правильно решить эту проблему?
Aborrol
29 марта 2019, 16:10
modx.pro
903
0