number.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. function ninja_forms_register_field_number() {
  3. $args = array(
  4. 'name' => __( 'Number', 'ninja-forms' ),
  5. 'sidebar' => 'template_fields',
  6. 'edit_function' => 'ninja_forms_field_number_edit',
  7. 'edit_options' => array(
  8. array(
  9. 'type' => 'text',
  10. 'class' => 'medium-text',
  11. 'name' => 'number_min',
  12. 'label' => __( 'Minimum Value', 'ninja-forms' ),
  13. ),
  14. array(
  15. 'type' => 'text',
  16. 'class' => 'medium-text',
  17. 'name' => 'number_max',
  18. 'label' => __( 'Maximum Value', 'ninja-forms' ),
  19. ),
  20. array(
  21. 'type' => 'text',
  22. 'class' => 'medium-text',
  23. 'name' => 'number_step',
  24. 'label' => __( 'Step (amount to increment by)', 'ninja-forms' ),
  25. ),
  26. ),
  27. 'display_function' => 'ninja_forms_field_number_display',
  28. 'save_function' => '',
  29. 'group' => 'standard_fields',
  30. 'edit_label' => true,
  31. 'edit_label_pos' => true,
  32. 'edit_req' => true,
  33. 'edit_custom_class' => true,
  34. 'edit_help' => true,
  35. 'edit_desc' => true,
  36. 'edit_meta' => false,
  37. 'edit_conditional' => true,
  38. 'conditional' => array(
  39. 'value' => array(
  40. 'type' => 'textarea',
  41. ),
  42. ),
  43. );
  44. ninja_forms_register_field( '_number', $args );
  45. }
  46. add_action( 'init', 'ninja_forms_register_field_number' );
  47. function ninja_forms_field_number_edit( $field_id, $data ) {
  48. $plugin_settings = nf_get_settings();
  49. $custom = '';
  50. // Default Value
  51. if( isset( $data['default_value'] ) ) {
  52. $default_value = $data['default_value'];
  53. } else {
  54. $default_value = '';
  55. }
  56. if( $default_value == 'none' ) {
  57. $default_value = '';
  58. }
  59. ?>
  60. <div class="description description-thin">
  61. <span class="field-option">
  62. <label for="">
  63. <?php _e( 'Default Value' , 'ninja-forms' ); ?>
  64. </label><br />
  65. <select id="default_value_<?php echo $field_id;?>" name="" class="widefat ninja-forms-_text-default-value">
  66. <option value="" <?php if( $default_value == '' ) { echo 'selected'; $custom = 'no'; } ?>><?php _e( 'None', 'ninja-forms' ); ?></option>
  67. <option value="_user_id" <?php if( $default_value == '_user_id') { echo 'selected'; $custom = 'no'; } ?>><?php _e( 'User ID (If logged in)', 'ninja-forms' ); ?></option>
  68. <option value="post_id" <?php if( $default_value == 'post_id') { echo 'selected'; $custom = 'no'; } ?>><?php _e( 'Post / Page ID (If available)', 'ninja-forms' ); ?></option>
  69. <option value="_custom" <?php if( $custom != 'no') { echo 'selected'; } ?>><?php _e( 'Custom', 'ninja-forms' ); ?> -></option>
  70. </select>
  71. </span>
  72. </div>
  73. <div class="description description-thin">
  74. <label for="" id="default_value_label_<?php echo $field_id;?>" style="<?php if($custom == 'no') { echo 'display:none;'; } ?>">
  75. <span class="field-option">
  76. <?php _e( 'Default Value' , 'ninja-forms' ); ?><br />
  77. <input type="number" class="widefat code" name="ninja_forms_field_<?php echo $field_id;?>[default_value]" id="ninja_forms_field_<?php echo $field_id;?>_default_value" value="<?php echo $default_value;?>" />
  78. </span>
  79. </label>
  80. </div>
  81. <?php
  82. }
  83. function ninja_forms_field_number_display( $field_id, $data, $form_id = '' ) {
  84. if ( isset( $data['default_value'] ) ) {
  85. $default_value = $data['default_value'];
  86. } elseif( isset( $data['number_min'] ) ) {
  87. $default_value = $data['number_min'];
  88. }
  89. if ( isset( $data['number_min'] ) ) {
  90. $min = ' min="' . esc_attr( $data['number_min'] ) . '"';
  91. } else {
  92. $min = '';
  93. }
  94. if ( isset( $data['number_max'] ) ) {
  95. $max = ' max="' . esc_attr( $data['number_max'] ) . '"';
  96. } else {
  97. $max = '';
  98. }
  99. if ( isset( $data['number_step'] ) ) {
  100. $step = ' step="' . esc_attr( $data['number_step'] ) . '"';
  101. } else {
  102. $step = '';
  103. }
  104. $field_class = ninja_forms_get_field_class( $field_id, $form_id );
  105. ?>
  106. <input type="number"<?php echo $min . $max . $step; ?> name="ninja_forms_field_<?php echo esc_attr( $field_id ); ?>" id="ninja_forms_field_<?php echo esc_attr( $field_id ); ?>" class="<?php echo esc_attr( $field_class ); ?>" rel="<?php echo esc_attr( $field_id ); ?>" value="<?php echo esc_attr( $default_value ); ?>"/>
  107. <?php
  108. }