Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jevgen/10676667 to your computer and use it in GitHub Desktop.
Save jevgen/10676667 to your computer and use it in GitHub Desktop.
<?php
/**
* Gravity Wiz // Require Minimum Character Limit for Gravity Forms
*
* Adds support for requiring a minimum number of characters for text-based Gravity Form fields.
*
* @version 1.0
* @author David Smith <david@gravitywiz.com>
* @license GPL-2.0+
* @link http://gravitywiz.com/...
* @copyright 2013 Gravity Wiz
*/
class GW_Minimum_Characters {
public function __construct( $args = array() ) {
// make sure we're running the required minimum version of Gravity Forms
if( ! property_exists( 'GFCommon', 'version' ) || ! version_compare( GFCommon::$version, '1.7', '>=' ) )
return;
// set our default arguments, parse against the provided arguments, and store for use throughout the class
$this->_args = wp_parse_args( $args, array(
'form_id' => false,
'field_id' => false,
'min_chars' => 0,
'validation_message' => __( 'Please enter at least %s characters.' )
) );
extract( $this->_args );
if( ! $form_id || ! $field_id || ! $min_chars )
return;
// time for hooks
add_filter( "gform_field_validation_{$form_id}_{$field_id}", array( $this, 'validate_character_count' ), 10, 4 );
}
public function validate_character_count( $result, $value, $form, $field ) {
if( strlen( $value ) < $this->_args['min_chars'] ) {
$result['is_valid'] = false;
$result['message'] = sprintf( $this->_args['validation_message'], $this->_args['min_chars'] );
}
return $result;
}
}
# Configuration
new GW_Minimum_Characters( array(
'form_id' => 385,
'field_id' => 1,
'min_chars' => 4,
'validation_message' => __( 'Oops! You need to enter at least %s characters.' )
) );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment