我正在使用WordPress 3.8和联系人表格7插件与联系人表格7db扩展。
我想检查现有的电子邮件,我做了一个钩子上提交(alter_wpcf7_posted_data)在functions.php如下:
function alter_wpcf7_posted_data( $data ) {
global $wpcf7;
if(email_exists( $_POST['mail'])) {
$data = array();
}
return $data;
}
add_filter("wpcf7_posted_data", "alter_wpcf7_posted_data");
这个挂接在源代码上抛出一个错误,但不保存数据。
基本上,如果email_exists()返回true,我不希望保存数据并在表单上抛出验证错误。
是否有人知道如何防止表单提交。
注意:我没有使用 AJAX 表单提交。
6条答案
按热度按时间izj3ouym1#
我找到了解决这个问题的方法。只需将此代码添加到您的function.php中
记住用你的联系人表单名称来改变
email_form
,用电子邮件字段名称来改变email_123
。fkaflof62#
我已经尝试了许多解决方案,但许多不与我合作,最后决定改变按钮内容和背景颜色10秒(或任何你需要的)
必须为“提交”按钮设置ID
他们使用这个jquery代码(我已经将它添加到jquery.jvcf7_validation.js文件中)
这会将背景色更改为黑色并写入“请等待”
10秒后,按钮将恢复为正常的背景色,并显示旧内容
我已尝试禁用该按钮,但它没有发送表单数据
3duebb1j3#
经过很长时间的尝试,找到一个功能代码,可以独立于插件使用,保存联系人在数据库中,我想出了下面的代码。
我构建我的版本基于:https://www.stacknoob.com/s/6X5Lisxm3DE87aGby3NzQZ
zpjtge224#
我创建了我自己的问题解决方案...只是根据您的形式替换
DB_PREFIX
和FORM_ID
...检查它,我希望这将帮助您eit6fx6z5#
我也面临着同样的问题。并尝试了许多代码。最后,我找到了解决方案。请在这里找到代码。
步骤1:安装https://wordpress.org/plugins/advanced-cf7-db/插件
步骤2:在function.php上添加以下代码
fdbelqdn6#
注意相关的CF7插件。在我的例子中,重复的表单提交是由Jquery Validation For Contact Form 7引起的。