input-limit.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. /**
  3. * Function that adds a character and word limit option to textboxes and textareas.
  4. *
  5. * @since 2.4.3
  6. * @return void
  7. */
  8. function ninja_forms_edit_field_input_limit( $field_id, $field_data ) {
  9. $field_row = ninja_forms_get_field_by_id($field_id);
  10. $field_type = $field_row['type'];
  11. $allowed_types = apply_filters( 'nf_input_limit_types', array( '_text', '_textarea' ) );
  12. if ( ! in_array( $field_type, $allowed_types ) )
  13. return false;
  14. if ( isset ( $field_data['input_limit'] ) ) {
  15. $input_limit = $field_data['input_limit'];
  16. } else {
  17. $input_limit = '';
  18. }
  19. if ( isset ( $field_data['input_limit_type'] ) ) {
  20. $input_limit_type = $field_data['input_limit_type'];
  21. } else {
  22. $input_limit_type = '';
  23. }
  24. if ( isset ( $field_data['input_limit_msg'] ) ) {
  25. $input_limit_msg = $field_data['input_limit_msg'];
  26. } else {
  27. $input_limit_msg = '';
  28. }
  29. $desc = '<em>'.__( 'If you leave the box empty, no limit will be used', 'ninja-forms' ).'</em>';
  30. ninja_forms_edit_field_el_output( $field_id, 'text', __( 'Limit input to this number', 'ninja-forms' ), 'input_limit', $input_limit, 'thin', '', 'widefat', $desc );
  31. ninja_forms_edit_field_el_output( $field_id, 'select', __( 'of', 'ninja-forms' ), 'input_limit_type', $input_limit_type, 'thin', array( array( 'name' => __( 'Characters', 'ninja-forms' ), 'value' => 'char') , array( 'name' => __( 'Words', 'ninja-forms' ), 'value' => 'word' ) ), 'widefat' );
  32. echo '<p class="description description-wide">&nbsp;</p>';
  33. ninja_forms_edit_field_el_output( $field_id, 'text', __( 'Text to appear after character/word counter', 'ninja-forms' ), 'input_limit_msg', $input_limit_msg, 'wide', '', 'widefat' );
  34. }
  35. add_action( 'nf_edit_field_restrictions', 'ninja_forms_edit_field_input_limit', 15, 2 );