Событие MvtFormsOnBeforeFormSend
Доступны массивы:
$data
- данные заполненной формы
$form
- параметры формы
$files
- загруженные с данной формой файлы
<?php
switch ($modx->event->name) {
/*
* Можно зарегистрировать пользователя, подписать его на рассылку и т.п. ...
*/
case 'MvtFormsOnBeforeFormSend':
/** Например, ловим форму order. Здесь order - префикс полей формы, например order_email. */
$userID = $modx->user->get('id');
if($userID == 0) {
$q = $modx->newQuery('modUser');
$q->innerJoin('modUserProfile', 'Profile');
$q->where(array('Profile.email' => $data['order_email']));
if (!$user = $modx->getObject('modUser', $q)) {
$user = $modx->newObject('modUser');
$user->set('username', $data['order_email']);
$user->set('active', 1);
$password = $user->generatePassword();
$user->set('password', $password);
$user->save();
$profile = $modx->newObject('modUserProfile');
$profile->set('fullname', $data['order_name']);
$profile->set('email', $data['order_email']);
$profile->set('phone', $data['order_phone']);
$profile->set('mobilephone', $data['order_phone']);
$user->addOne($profile);
$profile->save();
$user->save();
}
}
/**
* Есть объект $user с данными пользователя, отправившего форму - можно что-то ещё с ним делать.
* Например - отправить приглашение, спецпредложение, ....
*/
break;
}