Sterc / FormIt

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

Bug with several emails in emailTo #86

Closed IMWDS closed 7 years ago

IMWDS commented 8 years ago

Hello! There is a problem with several emails in emailTo So, what we have

[[!FormIt?
   &hooks=`spam,emailselector,email,redirect`
   &emailTpl=`recordtpl`
   &emailTo=`[[+emailAddresses]]`
   &emailSubject=`Test email`
   &redirectTo=`118`
   &validate=`name:required,date:required,phone:required`
]]

SELECT

<select class="form-control" name="XOption" value="[[!+fi.XOption]]">
        <option value=""> Option</option>
        <option value="Option_1" [[!+fi.XOption:is=`Option_1:then=`selected`]]>Option_1</option>
        <option value="Option_2" [[!+fi.XOption:is=`Option_2:then=`selected`]]>Option_2</option>
        </select>

Snippet emailselector (From hooks in from)

<?php
$emailselector = $hook->getValue('XOption');

switch ($emailselector) {
    case "Option_1":
        $hook->setValue('emailAddresses', 'xxx@gmail.com,xxxx3@gmail.com');
        break;
    case "Option_2":
        $hook->setValue('emailAddresses', 'yyy@gmail.com');
        break;
}

return true;

When we try to sent form with 2 emails (Option_1) We can't do that =( MODx revo 2.4.3 Formit 2.2.10-pl

joeke commented 8 years ago

@IMWDS Maybe if you try to set the emailTo property straight from your hook it would work, for example:

<?php
$formit =& $hook->formit;
$emailselector = $hook->getValue('XOption');

$emailAddresses = '';
switch ($emailselector) {
    case "Option_1":
        $emailAddresses = 'xxx@gmail.com,xxxx3@gmail.com';
        break;
    case "Option_2":
        $emailAddresses = 'yyy@gmail.com';
        break;
}
if ($emailAddresses) {
    $formit->config['emailTo'] = $emailAddresses ;
}
return true;
?>

And in your FormIt call you could replace the [[+emailAddresses]] placeholder in emailTo with a default emailaddress, or leave it empty.

joeke commented 8 years ago

@IMWDS Did you try above solution? If so, did it work for you?

joeke commented 7 years ago

Closing this issue for now. Feel free to re-open if you still have issues with this.