我正在尝试将操作URL更改为外部URL以将我的发布数据发送到。我目前正在使用下面的代码片段来做到这一点。我试图将POST数据发送到一个谷歌应用程序脚本。我有一个问题,如果用户忘记填写必填字段,POST数据仍然会被发送,当他们再次提交表单时,通常会有重复的条目。
add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
function wpcf7_custom_form_action_url($url)
{
global $post;
$id_to_change = POST ID;
if($post->ID === $id_to_change)
return 'https://script.google.com/macros/s/REDACTED';
else
return $url;
}
我想改变这一点,所以它只发送POST数据到该URL后,联系表格7验证所有字段,并确定提交。我也在写email。
有什么建议吗?谢谢!
1条答案
按热度按时间gv8xihay1#
默认情况下,CF7通过AJAX POST请求将数据发送到当前URL(这是您的WordPress安装),然后验证数据,如果验证通过,则发送电子邮件,否则返回相应的错误消息。通过将表单操作更改为某些外部URL,用户输入的数据将永远不会到达您的WordPress安装,因此CF7无法执行任何验证或发送电子邮件。
我建议你不要改变表单操作,让CF7来完成它的工作,而是在验证后但在发送任何电子邮件之前进行拦截。通过这种方式,您可以获得经过验证的表单数据,然后您可以将其转发到您喜欢的任何地方:
附带好处:其他CF7插件(如Flamingo)继续以这种方式工作。