Check if specific field is already submitted
-
Hello,
I’m trying to trigger an error message in case a field is already submitted in CF7.
For example a user can’t submit if he insert an already submitted email.
I used the code provided by CF7DB forum:** * @param $formName string * @param $fieldName string * @param $fieldValue string * @return bool */ function is_already_submitted($formName, $fieldName, $fieldValue) { require_once(ABSPATH . 'wp-content/plugins/contact-form-7-to-database-extension/CFDBFormIterator.php'); $exp = new CFDBFormIterator(); $atts = array(); $atts['show'] = $fieldName; $atts['filter'] = "$fieldName=$fieldValue"; $atts['unbuffered'] = 'true'; $exp->export($formName, $atts); $found = false; while ($row = $exp->nextRow()) { $found = true; } return $found; } /** * @param $result WPCF7_Validation * @param $tag array * @return WPCF7_Validation */ function my_validate_email($result, $tag) { $formName = 'email_form'; // Change to name of the form containing this field $fieldName = 'email_123'; // Change to your form's unique field name $errorMessage = 'Email has already been submitted'; // Change to your error message $name = $tag['name']; if ($name == $fieldName) { if (is_already_submitted($formName, $fieldName, $_POST[$name])) { $result->invalidate($tag, $errorMessage); } } return $result; } // use the next line if your field is a **required email** field on your form add_filter('wpcf7_validate_email*', 'my_validate_email', 10, 2); // use the next line if your field is an **email** field not required on your form add_filter('wpcf7_validate_email', 'my_validate_email', 10, 2); // use the next line if your field is a **required text** field add_filter('wpcf7_validate_text*', 'my_validate_email', 10, 2); // use the next line if your field is a **text** field field not required on your form add_filter('wpcf7_validate_text', 'my_validate_email', 10, 2);
without results. It seems it doesn’t work with the latest version of CF7.
Anyone has a solution to check if a field is already submitted?
Thank you!
- The topic ‘Check if specific field is already submitted’ is closed to new replies.