php - 联系表格 7 提交验证失败

标签 php wordpress contact-form-7

当验证为 时,我需要联系表格 7 发送一封电子邮件失败 .然后在正确提交表单后发送正常的 CF7 电子邮件。我知道可笑,但客户!

我认为我与以下内容比较接近:

function send_failed_vaildation_email( $data ) {
    $messagesend = 'Name:' . $_POST['your-name']; 
    $messagesend .= '\r\nEmail:' .$_POST['email']; 
    $messagesend .= '\r\nPhone:' .$_POST['validPhone']; 
    $messagesend .= '\r\nRate:' .$_POST['rate']; 
    $messagesend .= '\r\nBased:' .$_POST['based']; 
    wp_mail('c******y@gmail.com', 'failed validation mail', $messagesend );
}
add_filter("wpcf7_posted_data", "send_failed_vaildation_email");

但是,这会发送所有提交,无论它们是否通过验证。
wpcf7_before_send_mail不好,因为它只会在提交通过验证后触发。

我正在寻找一个不同的钩子(Hook)来代替 wpcf7_posted_data仅在验证失败或我可以放置在 wp_mail 周围的 if 语句时触发为了同样的效果。

提前致谢

最佳答案

这就是我设法让它工作的方法。

@rnevius 回答失败,因为 wpcf7_posted_data在验证数据之前应用过滤器,因此当时没有任何内容是无效的。

将@rnevius 的回答与 wpcf7_submit 结合起来过滤器,它按预期工作。

完整代码:

function send_failed_vaildation_email() {
    $submission = WPCF7_Submission::get_instance();
    $invalid_fields = $submission->get_invalid_fields();

    $posted_data = $submission->get_posted_data();

    if ( !empty( $invalid_fields ) ) {
        $messagesend = 'Name:' . $posted_data['your-name']; 
        $messagesend .= '\r\nEmail:' . $posted_data['email']; 
        $messagesend .= '\r\nPhone:' . $posted_data['validPhone']; 
        $messagesend .= '\r\nRate:'  . $posted_data['rate']; 
        $messagesend .= '\r\nBased:' . $posted_data['based']; 
        $messagesend .= count($invalid_fields); 
        wp_mail('c*******y@gmail.com', 'failed validation mail', $messagesend );
    }
}
add_filter("wpcf7_submit", "send_failed_vaildation_email");

关于php - 联系表格 7 提交验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28876072/

相关文章:

php 错误地回显标签外的内容

WordPress 自定义古腾堡 block render_callback 不渲染

php - 如何在发送联系表格 7 之前更改数据?

wordpress - 联系表 7 不适用于我的 WAMP 本地主机

php - 通过引用传递 __call() 参数失败。有解决办法吗?

php - 新闻提要数据库设计效率

javascript - 允许 PHP 脚本通过 SSH 连接到多个服务器

jquery - 尝试将多个 div 倾斜到不同的随机 Angular

wordpress - 如何在Contact Form 7 WordPress中实现Google Adwords转换代码

javascript - 如何使用 html、javascript 和 php 通过电子邮件 ID 发送 pdf 文件