Sterc / FormIt

A dynamic form processing Snippet for MODX Revolution
https://docs.modx.com/current/en/extras/formit
33 stars 58 forks source link

Send to Multiple Email Address based on dropdown, title etc. #180

Closed fpurser closed 5 years ago

fpurser commented 6 years ago

How to send to multiple recipients Modify: FormIt/core/components/formit/model/formit/fihooks.class.php Original:

       /* check email to */
        $emailTo = $this->modx->getOption(‘emailTo’,$this->formit->config,‘’);
        $emailToName = $this->modx->getOption(‘emailToName’,$this->formit->config,$emailTo);
        if (empty($emailTo)) {
            $this->errors[‘emailTo’] = $this->modx->lexicon(‘formit.email_no_recipient’);
            $this->modx->log(modX::LOG_LEVEL_ERROR,‘[FormIt] ’.$this->modx->lexicon(‘formit.email_no_recipient’));
            return false;
        }

Modified:

        /* check email to */
        $hookEmailTo = (trim($fields[‘emailAddresses’]) != ‘’) ? trim($fields[‘emailAddresses’]) : ‘’;
        $emailTo = $this->modx->getOption(‘emailTo’,$this->formit->config,‘’);
        $emailTo = (isset($hookEmailTo) && $hookEmailTo != ‘’) ? $hookEmailTo : $emailTo;
        $emailToName = $this->modx->getOption(‘emailToName’,$this->formit->config,$emailTo);
        if (empty($emailTo)) {
            $this->errors[‘emailTo’] = $this->modx->lexicon(‘formit.email_no_recipient’);
            $this->modx->log(modX::LOG_LEVEL_ERROR,‘[FormIt] ’.$this->modx->lexicon(‘formit.email_no_recipient’));
            return false;
        }
MrRoco commented 5 years ago

@fpurser It's already possible to sent to multiple recipients. &emailTo=test@sterc.com,test2@sterc.com

and the value can be overwritten in a hook by using the following code:

$formit =& $hook->formit; $formit->config['emailTo'] = 'your dropdown values';