【发布时间】:2021-06-23 01:57:02
【问题描述】:
我需要将完整的自定义字段数组发送到带有联系表格 7 的邮件(动态填充),以便在发送之前在此处工作:
// define the wpcf7_posted_data callback
function action_wpcf7_posted_data($array)
{
$a = get_field('date')
//WORK HERE
$array['Nom & Prénom'] = $array['name'];
unset($array['name']);
$array['E-mail'] = $array['email'];
unset($array['email']);
$array['Téléphone'] = $array['tel'];
unset($array['tel']);
$array['Profession'] = $array['job'];
unset($array['job']);
$array['Session'] = $array['upcoming-gigs'];
unset($array['upcoming-gigs']);
unset($array['privacy']);
return $array;
}
add_filter('wpcf7_posted_data', 'action_wpcf7_posted_data', 10, 1);
因为是在发送邮件之前我无法在发送之前调用任何东西来比较。
所以我想将所有数据发送到一个隐藏输入中,然后进行比较。
这是联系表格7中的两个输入:
[select upcoming-gigs data:gigs id:date] [hidden select upcoming-gigs2 data:gigs2]
我这里的目标是发送隐藏选择的所有数据。
我找不到在邮件中发送所有输入的方法。
有可能吗?有更好的方法吗?
谢谢
编辑:
我的问号2:
目标是发送一封包含会话日期和会话 ID 的邮件。
我使用 ACF 并且我有:
在动态下拉后,用户看起来像这样:
问题是我没有会话的 ID,只有日期。
要知道我需要与所有自定义字段的数组进行比较的id,我无法在wpcf7_posted_data期间导入它。
我认为如果我将数组的所有数据发送到隐藏字段中,我可以重新制作数组并找到我的用户选择的会话的 id。
我希望我更清楚。
(在wpcf7_posted_data期间我无法在php中发出请求。我可以发出ajax请求吗?)
这是联系表格 7 的 html,其余的是 CSS 的 div
[select upcoming-date data:date id:date] [hidden select upcoming-date2 data:date2]
编辑3: 好的,明白了。
我用来制作下拉菜单的自定义字段分为 id 和 text 两部分。我有我需要 id 的文本部分。
如果我发送邮件中的所有文本和 ID,我可以将其与用户的答案进行比较,然后将正确的 ID 添加到邮件中。
这里生成的html:http://www.sharemycode.fr/5ax
编辑 4: 我写下拉列表的 id 和文本的地方:
我创建选择的地方:
add_filter('wpcf7_form_tag_data_option', function ($n, $options, $args) {
$ses = (array)get_field('date_new');
$sesCount = count($ses);
$gigs = [];
$gigs2 = [];
if (in_array('gigs', $options)) {
for ($i = 0; $i < $sesCount; $i++) {
if ($ses[$i]['date_start'] > date('d-m-Y', time())) {
$a = "A réaliser entre le " . $ses[$i]['date_start'] . " et le " . $ses[$i]['date_end'] ." | bla";
array_push($gigs, $a);
}
}
return $gigs;
}
}
【问题讨论】:
-
我不明白你为什么要使用隐藏选择?价值是多少?您能否用表单数据的实际样本以及您希望发送到电子邮件的内容来说明您的示例?
-
我有两个自定义字段 session_number 和 session_text。用户在下拉列表中选择 session_text,我希望在邮件发送依赖的 session_number 之前拥有。由于钩子,我无法发出任何请求,因此我想发送 session_number 和 session_text 的所有值以进行比较并将正确的 session_number 添加到邮件中
-
好的,您能否在您的问题中添加其他信息来说明这一点。添加选择和可能的结果,它将如何确定要发送给谁?您绝对可以使用
wpcf7_before_send_mail比较值,但您的问题仍然不清楚,那是什么。 -
我使用 ACF 创建自定义字段,但我可以在
wpcf7_before_send_mail期间调用请求(就像我在问题第 4 行中编辑一样)。 $a 的数组为空。所以我没有数据可以与我的用户的选择进行比较 -
很抱歉,您的问题仍然太模糊,无法帮助您。隐藏的
select字段的目的是什么?您绝对可以使用 ajax 和隐藏表单字段来评估和传递有关用户操作的数据,但是您的问题没有提供足够的真实信息来尝试自己复制。
标签: php wordpress contact-form-7