Description

The wpforms_process_validate_text action fires validation on the Single Line Text form field when the form is submitted.

Parameters

$field_id
(int) Field ID.
$field_submit
(array) Original raw/unsanitized field value submitted for the field.
$form_data
(array) Processed form settings/data, prepared to be used later.

Source

wpforms/includes/fields/class-base.php

More Information

The action is applied to an array for Single Line Text form field. This function can be used for all form fields do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ).

For example, to use this for an Email field, you would use do_action( wpforms_process_validate_email, $field_id, $field_submit, $form_data ).

It’s important to note that field values are not sanitized until later on in the processing, at wpforms_process_format_{$field_type}.

Examples

You can use this action to scan the Single Line Text for anything you’d like to have validated prior to sending the form.

This example, we’re going to search for any profanity in this field. If there is any profanity, the form will display an error and not send.

/*
 * Check the single line text field for profanity.
 *
 * @link https://wpforms.com/developers/wpforms_process_validate_text/
 *
 * @param int     $field_id        Field ID.
 * @param array   $field_submit    Unsanitized field value submitted for the field.
 * @param array   $form_data       Form data and settings.
*/

function wpf_dev_profanity_filter_single_text( $field_id, $field_submit, $form_data ) {

    // Optional, you can limit to specific forms. Below, we restrict output to
    // form ID #1423.
    if ( absint( $form_data[ 'id' ] ) !== 1423 ) {
        return;
    }

    //Create your list of profanity words separated by commas
    $blocked_words = array( 
        'badword1', 
        'badword2'
    );
 
    foreach( $blocked_words as $word ) {
        if(strpos($field_submit, $word) !== FALSE ) {
            wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'No profanity allowed.', 'wpforms' );
            return;
        }
    }
 
}
 
add_action( 'wpforms_process_validate_text', 'wpf_dev_profanity_filter_single_text', 10, 3 );

Reference Articles