感谢迈克尔·辛普森,来自联系表格DB。该解决方案列在联系表格DB网站的以下文章中(某种程度上是隐藏的)——CF7 Menus with Pipes
添加到函数。php
function myFilter($formData) {
// Change $formData
return $formData; // be sure to return it
}
add_filter(\'cfdb_form_data\', \'myFilter\');
function location_form_handler($formData)
{
$formName = \'ExtendedContact\'; // change this to your form\'s name
$fieldName = \'state\'; // change this to your field\'s name
if ($formData && $formName == $formData->title && $formData->scanned_form_tags) {
$emailSelected = $formData->posted_data[$fieldName];
$valueSelected = null;
foreach ($formData->scanned_form_tags as $tag) {
if ($tag[\'name\'] == $fieldName) {
foreach ($tag[\'raw_values\'] as $rawValue) {
// value|email
$valuesArray = explode(\'|\', $rawValue);
if (count($valuesArray) == 2 && $valuesArray[1] == $emailSelected) {
$valueSelected = $valuesArray[0];
break;
}
}
}
if ($valueSelected != null) {
break;
}
}
if ($valueSelected != null) {
$formData->posted_data[$fieldName] = $valueSelected;
$formData->posted_data[$fieldName . \'_email\'] = $emailSelected;
}
}
return $formData;
}
add_filter(\'cfdb_form_data\', \'location_form_handler\');
这将在数据库中创建一个状态名称(管道前的字段)为
state
和第二个字段(管道后的电子邮件地址),关联的电子邮件地址为
state_email
.
最后,更新联系人表格7中的表格定义:【state\\u email】
NOTE
我还想提一下,万一有人遇到这种情况-
在我的表格中,填写表格的访问者选择他们所在的州,然后负责该州的销售人员收到电子邮件。此外,我需要将电子邮件发送到中心(公司)电子邮件地址。
然而,并不是所有的州都有指定的销售人员,因为该公司专注于中西部地区。
对于联系人表单7,如果管道后的电子邮件地址为空,则根本不会发送电子邮件。Michael概述的方法实际上允许在管道后面有一个空字段。
我在表单中设置了“Mail”以发送给中心电子邮件,并设置了“Mail(2)”以发送给销售人员(如果存在)。