【发布时间】:2020-10-10 19:21:34
【问题描述】:
我使用联系表单 7“before_send_mail”功能检查表单字段,以及字段“密码”内的值是否与预定义的密码匹配。如果字段“密码”中的值等于有价值的 $definedPassword 表单应该正常执行但是当值不同时我不想执行表单并显示自定义消息。我很高兴得到每一个帮助:
<?php
add_action( 'wpcf7_before_send_mail', 'wpcf7_login_stream_check' );
function wpcf7_login_stream_check($WPCF7_ContactForm) {
$definedPassword = "234";
$wpcf7 = WPCF7_ContactForm :: get_current();
$form_id = $wpcf7->id;
if ($form_id === 105) {
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$posted_data = $submission->get_posted_data();
$password = $posted_data['password'];
if($password == $definedPassword ) {
/* NORMAL BEHAVIOUR */
} else {
/* PREVENT FORM FROM SENDING AND SHOW CUSTOM-MESSAGE */
}
}
}
}
【问题讨论】:
-
除非您需要运行 sql 查询来确定数据库中的密码是否有效,否则我会尝试使用 JS 而不是 php 来解决此问题。如果你决定使用 php,你需要检查表单值是否等于你的 $definedpassword 使用 ISSET
标签: php wordpress contact-form-7