How to Remove Form Validations in Fluent Forms

tdrayson

Learn how to selectively disable form validations in Fluent Forms for specific forms or all forms across your WordPress site. This is particularly useful when you need to create draft submissions, allow partial form completions, or implement custom validation rules.

Here’s a clean, reusable solution that can be added to your theme’s functions.php or a custom plugin:

PHP

        /**
 * Remove validation rules from Fluent Forms fields
 *
 * @param object $form The form object being rendered
 * @param bool $enabled Whether validation removal is enabled
 * @param array $allowed_form_ids Optional array of form IDs to apply removal to
 * @return object Modified form object
 */
function remove_fluent_form_validations($form, $enabled = true, $allowed_form_ids = []) {
    if (!$enabled) {
        return $form;
    }

    // Apply to specific forms or all forms if array is empty
    if (empty($allowed_form_ids) || in_array($form->id, $allowed_form_ids)) {
        if (isset($form->fields['fields']) && is_array($form->fields['fields'])) {
            foreach ($form->fields['fields'] as &$field) {
                clear_validation_rules($field);
                process_nested_fields($field);
                process_columns($field);
            }
        }
    }
    return $form;
}

/**
 * Clear validation rules from a field
 *
 * @param array &$field Field array to modify
 */
function clear_validation_rules(&$field) {
    if (isset($field['settings']['validation_rules'])) {
        $field['settings']['validation_rules'] = [];
    }
}

/**
 * Process nested fields within a field group
 *
 * @param array &$field Field array containing nested fields
 */
function process_nested_fields(&$field) {
    if (isset($field['fields']) && is_array($field['fields'])) {
        foreach ($field['fields'] as &$nested_field) {
            clear_validation_rules($nested_field);
        }
    }
}

/**
 * Process fields within columns
 *
 * @param array &$field Field array containing columns
 */
function process_columns(&$field) {
    if (isset($field['columns']) && is_array($field['columns'])) {
        foreach ($field['columns'] as &$column) {
            if (isset($column['fields']) && is_array($column['fields'])) {
                foreach ($column['fields'] as &$column_field) {
                    clear_validation_rules($column_field);
                }
            }
        }
    }
}

// Hook into form rendering
add_filter('fluentform/rendering_form', 'remove_fluent_form_validations', 10, 3);
      
Copy

How It Works

The code systematically removes validation rules from all field types in a Fluent Form:

  1. The main function accepts parameters to:
    • Enable/disable the functionality
    • Target specific form IDs
  2. It processes standard fields, nested fields (like repeaters), and column-based layouts
  3. All validation rules are cleared while preserving the field structure

Usage Examples

Remove validations from all forms:

PHP

        add_filter('fluentform/rendering_form', 'remove_fluent_form_validations', 10, 1);
      
Copy

Remove validations from specific forms:

PHP

        add_filter('fluentform/rendering_form', function($form) {
    return remove_fluent_form_validations($form, true, [1, 2, 3]);
}, 10, 1);
      
Copy

Want an Easy Solution?

Download Fluent Forms Debugger for a point-and-click interface to manage form validations without coding.

Features:

  • Admin settings page
  • Form-specific controls
  • No code needed

👋🏻 Weekly Tutorial Digest

I send out a weekly newsletter with links to new tutorials written in the last week, you can subscribe below.

Newsletter

🔒I won't send you spam, I promise