While most modifications to the Form Processing Flow should exist as custom actions, there are some circumstances for otherwise filtering the data at different places during the flow.
The general flow works in the following order:
- Field Validation
- Field Processing
- Action Processing
Before Processing
Before the form is processed, form submission data is filterable using the ninja_forms_submit_data hook:
FILTER: apply_filters( ‘ninja_forms_submit_data’, $form_data );
The passed array parameter contains field data, form settings, and extra data submitted by the form.
Field Validation
During field validation each field’s settings are filtered before calling the respective field’s validate() method.
FILTER: ninja_forms_pre_validate_field_settings
Field Processing
Each field’s registered type has a process() method by which a field’s data can be modified before actions are processed.
See: Field Registration
Action Processing
Before being processed, the form’s actions are filterable. This is a good place to dynamically remove any actions from processing.
FILTER: ninja_forms_submission_actions
Before each individual form action is processed, its settings are filterable.
FILTER: ninja_forms_run_action_settings
Before an action is triggered, a filter runs to determine if that action should be processed.
FILTER: ninja_forms_run_action_type_$type
After Processing
Lastly, after the submission processing, an action hook fires with the relevant form data.
ACTION: ninja_forms_after_submission`