Search code examples
phpwordpressgravity-forms-plugin

How to make Gravity Forms name field input only accept letters


How do I make the gravity form name field only accept letters, numbers should give an error.


Solution

  • You need to use gform_field_validation validation filter to be able to do this kind of validation before the form submits.

    In addition, we need to use preg_match function of PHP with a regex to ensure we are only taking Letters from Full Name input value.

    Just add this code in your active theme functions.php file: (Code tested and working)

    add_filter( 'gform_field_validation', function ( $result, $value, $form, $field ) {
        if ( $field->type == 'name' ) {
    
            // Input values
            $fullName = rgar( $value, $field->id . '.3' );
             
            if ( empty( $fullName )) {
                $result['is_valid'] = false;
                $result['message']  = empty( $field->errorMessage ) ? __( 'This field is required. Please enter a complete name.', 'gravityforms' ) : $field->errorMessage;
            } else if (preg_match('/[A-Za-z].*[0-9]|[0-9].*[A-Za-z]/', $fullName)) { //check for letters only
                $result['is_valid'] = false;
                $result['message']  = empty( $field->errorMessage ) ? __( 'Full name must ony contains letters.', 'gravityforms' ) : $field->errorMessage;
            } else {
                $result['is_valid'] = true;
                $result['message']  = '';
            }
        }
        return $result; //return results
    }, 10, 4 );