<?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;
    
}