public static function validate_field($posted_field, &$errors, $values, $args = array()) { $defaults = array('id' => $posted_field->id, 'parent_field_id' => '', 'key_pointer' => '', 'exclude' => array()); $args = wp_parse_args($args, $defaults); if (empty($args['parent_field_id'])) { $value = isset($values['item_meta'][$args['id']]) ? $values['item_meta'][$args['id']] : ''; } else { // value is from a nested form $value = $values; } // Check for values in "Other" fields FrmEntriesHelper::maybe_set_other_validation($posted_field, $value, $args); if (isset($posted_field->field_options['default_blank']) && $posted_field->field_options['default_blank'] && $value == $posted_field->default_value) { $value = ''; } // Check for an array with only one value // Don't reset values in "Other" fields because array keys need to be preserved if (is_array($value) && count($value) == 1 && $args['other'] !== true) { $value = reset($value); } if ($posted_field->required == '1' && !is_array($value) && trim($value) == '') { $frm_settings = FrmAppHelper::get_settings(); $errors['field' . $args['id']] = !isset($posted_field->field_options['blank']) || $posted_field->field_options['blank'] == '' ? $frm_settings->blank_msg : $posted_field->field_options['blank']; } else { if ($posted_field->type == 'text' && !isset($_POST['item_name'])) { $_POST['item_name'] = $value; } } self::validate_url_field($errors, $posted_field, $value, $args); self::validate_email_field($errors, $posted_field, $value, $args); FrmEntriesHelper::set_posted_value($posted_field, $value, $args); self::validate_recaptcha($errors, $posted_field, $args); $errors = apply_filters('frm_validate_field_entry', $errors, $posted_field, $value, $args); }
public static function validate_field($posted_field, &$errors, $values, $args = array()) { $defaults = array('id' => $posted_field->id, 'parent_field_id' => '', 'key_pointer' => '', 'exclude' => array()); $args = wp_parse_args($args, $defaults); if (empty($args['parent_field_id'])) { $value = isset($values['item_meta'][$args['id']]) ? $values['item_meta'][$args['id']] : ''; } else { // value is from a nested form $value = $values; } // Check for values in "Other" fields FrmEntriesHelper::maybe_set_other_validation($posted_field, $value, $args); self::maybe_clear_value_for_default_blank_setting($posted_field, $value); // Reset arrays with only one value if it's not a field where array keys need to be preserved if (is_array($value) && count($value) == 1 && isset($value[0])) { $value = reset($value); } if ($posted_field->required == '1' && !is_array($value) && trim($value) == '') { $errors['field' . $args['id']] = FrmFieldsHelper::get_error_msg($posted_field, 'blank'); } else { if ($posted_field->type == 'text' && !isset($_POST['item_name'])) { $_POST['item_name'] = $value; } } if ($value != '') { self::validate_url_field($errors, $posted_field, $value, $args); self::validate_email_field($errors, $posted_field, $value, $args); self::validate_number_field($errors, $posted_field, $value, $args); self::validate_phone_field($errors, $posted_field, $value, $args); } FrmEntriesHelper::set_posted_value($posted_field, $value, $args); self::validate_recaptcha($errors, $posted_field, $args); $errors = apply_filters('frm_validate_' . $posted_field->type . '_field_entry', $errors, $posted_field, $value, $args); $errors = apply_filters('frm_validate_field_entry', $errors, $posted_field, $value, $args); }
public static function validate($errors, $field, $value, $args) { $field->temp_id = $args['id']; // Keep current value for "Other" fields because it is needed for correct validation if (!$args['other']) { FrmEntriesHelper::get_posted_value($field, $value, $args); } if ($field->type == 'form' || FrmField::is_repeating_field($field)) { self::validate_embedded_form($errors, $field, $args['exclude']); } else { if ($field->type == 'user_id') { // make sure we have a user ID if (!is_numeric($value)) { $value = FrmAppHelper::get_user_id_param($value); FrmEntriesHelper::set_posted_value($field, $value, $args); } //add user id to post variables to be saved with entry $_POST['frm_user_id'] = $value; } else { if ($field->type == 'time' && is_array($value)) { $value = $value['H'] . ':' . $value['m'] . (isset($value['A']) ? ' ' . $value['A'] : ''); FrmEntriesHelper::set_posted_value($field, $value, $args); } } } // don't validate if going backwards if (FrmProFormsHelper::going_to_prev($field->form_id)) { return array(); } // clear any existing errors if draft if (FrmProFormsHelper::saving_draft() && isset($errors['field' . $field->temp_id])) { unset($errors['field' . $field->temp_id]); } self::validate_file_upload($errors, $field, $args); // if saving draft, only check file type since it won't be checked later // and confirmation field since the confirmation field value is not saved if (FrmProFormsHelper::saving_draft()) { //Check confirmation field if saving a draft self::validate_confirmation_field($errors, $field, $value, $args); return $errors; } self::validate_no_input_fields($errors, $field); if (empty($args['parent_field_id']) && !isset($_POST['item_meta'][$field->id])) { return $errors; } if (($field->type != 'tag' && $value == 0 || $field->type == 'tag' && $value == '') && isset($field->field_options['post_field']) && $field->field_options['post_field'] == 'post_category' && $field->required == '1') { $frm_settings = FrmAppHelper::get_settings(); $errors['field' . $field->temp_id] = !isset($field->field_options['blank']) || $field->field_options['blank'] == '' || $field->field_options['blank'] == 'Untitled cannot be blank' ? $frm_settings->blank_msg : $field->field_options['blank']; } //Don't require fields hidden with shortcode fields="25,26,27" global $frm_vars; if (self::is_field_hidden_by_shortcode($field, $errors)) { unset($errors['field' . $field->temp_id]); $value = ''; } //Don't require a conditionally hidden field self::validate_conditional_field($errors, $field, $value); //Don't require a field hidden in a conditional page or section heading self::validate_child_conditional_field($errors, $field, $value); //make sure the [auto_id] is still unique self::validate_auto_id($field, $value); //check uniqueness self::validate_unique_field($errors, $field, $value); self::set_post_fields($field, $value, $errors); if (!FrmProFieldsHelper::is_field_visible_to_user($field)) { //don't validate admin only fields that can't be seen unset($errors['field' . $field->temp_id]); FrmEntriesHelper::set_posted_value($field, $value, $args); return $errors; } self::validate_confirmation_field($errors, $field, $value, $args); //Don't validate the format if field is blank if (FrmAppHelper::is_empty_value($value)) { FrmEntriesHelper::set_posted_value($field, $value, $args); return $errors; } if (!is_array($value)) { $value = trim($value); } $validate_fields = array('number', 'phone', 'date'); if (in_array($field->type, $validate_fields)) { $function = 'validate_' . $field->type . '_field'; self::$function($errors, $field, $value); } FrmEntriesHelper::set_posted_value($field, $value, $args); return $errors; }