我几天来一直试图使用Contact Form 7插件在Wordpress中的一系列表单上实现验证。它看起来一直很受欢迎,没有其他人似乎有同样的问题。
我需要验证所有输入,所以我安装了jquery-validation-for-contact-form-7插件,其中包括电子邮件和其他插件。
我的表单都没有正确验证。主要的一个是简单的呼叫请求表单,它位于模式内,通过标题中的链接触发。我想知道模态是否导致问题,所以我创建了一个内部表单的测试帖。
当字段为空但发送按钮根本不起作用时,会出现错误。要复合这一点,侧边栏中还有另一种形式,当完成此操作并按下提交按钮时,将显示OTHER表单上的验证错误!
我根本无法理解这一点。我已经考虑过拉动所有表格并从头开始编写它们,随着我的进行实现我自己的验证,但重新发明轮子似乎很愚蠢。我对此表示感谢。
抱歉,忘了提供链接!
答案 0 :(得分:0)
我在这里搜索了很多其他人,问题是CF7在不久前改变了它的代码,你会发现旧的例子。以下是我使用的CF7版本4.2的工作示例:
function custom_email_validation_filter($result, $tag) {
$tag = new WPCF7_Shortcode( $tag );
$name = $tag->name;
if($name == 'your-email') { // Only apply to fields with the form field name of "your-email"
$the_value = $_POST[$name];
if( (substr($the_value, -10) !== '@gmail.com') ) {
$result->invalidate($tag, "This is not a gmail address!");
};
};
return $result;
};
add_filter('wpcf7_validate_email','custom_email_validation_filter', 10, 2); // Email field
add_filter('wpcf7_validate_email*', 'custom_email_validation_filter', 10, 2); // Required Email field
该示例为名为“your-email”的字段添加了额外的“Gmail-Email-Address-Validator”。最后两行将函数直接挂钩到电子邮件字段(可选)和电子邮件字段(非可选) - 两者。
这个易于理解的例子经过测试,有效并希望节省您的时间:) - 请投票:) 工作示例如下:https://www.baab.de/bestellung-wordpress-nginx-webhosting/