PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.24.1
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.24.1
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
formidable / classes / views / frm-fields / back-end / settings.php

settings.php in Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More 6.24.1, at classes/views/frm-fields/back-end/settings.php

538 lines 23.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 die( 'You are not allowed to call this page directly.' );
4 }
5 ?>
6 <div class="frm-single-settings frm_hidden frm-fields frm-type-<?php echo esc_attr( $field['type'] ); ?>" id="frm-single-settings-<?php echo esc_attr( $field['id'] ); ?>" data-fid="<?php echo esc_attr( $field['id'] ); ?>">
7 <input type="hidden" name="frm_fields_submitted[]" value="<?php echo esc_attr( $field['id'] ); ?>" />
8 <input type="hidden" name="field_options[field_order_<?php echo esc_attr( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['field_order'] ); ?>" />
9
10 <h3 aria-expanded="true">
11 <?php
12 printf(
13 /* translators: %s: Field type */
14 esc_html__( '%s Field', 'formidable' ),
15 esc_html( $type_name )
16 );
17 ?>
18 <span class="frm-sub-label frm-text-sm frm-text-grey-400">(ID <?php echo esc_html( $field['id'] ); ?>)</span>
19 </h3>
20
21 <div class="frm_grid_container frm-collapse-me" role="group">
22 <?php
23 if ( $field['type'] === 'captcha' && ! FrmFieldCaptcha::should_show_captcha() ) {
24 ?>
25 <div class="frm_warning_style frm-with-icon">
26 <?php FrmAppHelper::icon_by_class( 'frm_icon_font frm_alert_icon', array( 'style' => 'width:24px' ) ); ?>
27 <span>
28 <?php
29 /* translators: %1$s: Link HTML, %2$s: End link */
30 printf( esc_html__( 'Captchas will not be used until the Site and Secret Keys are %1$sset up%2$s.', 'formidable' ), '<a href="?page=formidable-settings&t=captcha_settings" target="_blank">', '</a>' );
31 ?>
32 </span>
33 </div>
34 <?php
35 }
36 if ( $field['type'] === 'credit_card' && ! FrmAppHelper::pro_is_installed() ) {
37 if ( ! FrmStrpLiteConnectHelper::at_least_one_mode_is_setup() && ! FrmSquareLiteConnectHelper::at_least_one_mode_is_setup() ) {
38 FrmStrpLiteAppHelper::not_connected_warning();
39 } elseif ( ! FrmTransLiteActionsController::get_actions_for_form( $field['form_id'] ) ) {
40 ?>
41 <div class="frm_warning_style frm-with-icon">
42 <?php FrmAppHelper::icon_by_class( 'frm_icon_font frm_alert_icon', array( 'style' => 'width:24px' ) ); ?>
43 <span>
44 <?php
45 /* translators: %1$s: Link HTML, %2$s: End link */
46 printf( esc_html__( 'Credit Cards will not work without %1$sadding a Collect Payment action%2$s.', 'formidable' ), '<a href="?page=formidable&frm_action=settings&id=' . absint( $field['form_id'] ) . '&t=email_settings" target="_blank">', '</a>' );
47 ?>
48 </span>
49 </div>
50 <?php
51 }
52 }
53 ?>
54
55 <?php
56 if ( $field['type'] === FrmFieldGdprHelper::FIELD_TYPE && FrmFieldGdprHelper::hide_gdpr_field() ) {
57 ?>
58 <div class="frm_note_style">
59 <?php FrmAppHelper::icon_by_class( 'frm_icon_font frm_alert_icon', array( 'style' => 'width:24px' ) ); ?>
60 <span>
61 <?php
62 /* translators: %1$s: Link HTML, %2$s: End link */
63 printf( esc_html__( 'GDPR field is disabled. Please enable it in the Formidable %1$sSettings%2$s.', 'formidable' ), '<a href="?page=formidable-settings" target="_blank">', '</a>' );
64 ?>
65 </span>
66 </div>
67 <?php
68 }
69 ?>
70
71 <?php
72 /**
73 * Fires before the field label in the field settings.
74 *
75 * @since 6.23
76 *
77 * @param array $field The field settings.
78 * @param array $display The display settings for the field.
79 * @param array $values The values associated with the field.
80 */
81 do_action( 'frm_field_options_before_label', $field, $display, $values );
82 ?>
83 <?php if ( $display['label'] ) { ?>
84 <p class="frm-mt-xs">
85 <label for="frm_name_<?php echo esc_attr( $field['id'] ); ?>">
86 <?php echo esc_html( apply_filters( 'frm_builder_field_label', __( 'Field Label', 'formidable' ), $field ) ); ?>
87 </label>
88 <input type="text" name="field_options[name_<?php echo esc_attr( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['name'] ); ?>" id="frm_name_<?php echo esc_attr( $field['id'] ); ?>" data-changeme="field_label_<?php echo esc_attr( $field['id'] ); ?>" />
89 </p>
90 <?php } else { ?>
91 <input type="hidden" name="field_options[name_<?php echo esc_attr( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['name'] ); ?>" id="frm_name_<?php echo esc_attr( $field['id'] ); ?>" />
92 <?php } ?>
93
94 <div class="frm-hide-empty frm-inline-flex frm-gap-sm frm-flex-wrap frm-items-center frm-my-xs">
95 <?php if ( $display['required'] ) { ?>
96 <div class="frm_form_field">
97 <label for="frm_req_field_<?php echo esc_attr( $field['id'] ); ?>" class="frm-mb-0">
98 <input type="checkbox" id="frm_req_field_<?php echo esc_attr( $field['id'] ); ?>" class="frm_req_field" name="field_options[required_<?php echo esc_attr( $field['id'] ); ?>]" value="1" <?php echo $display['readonly_required'] ? 'readonly onclick="return false;"' : ''; ?> <?php checked( ! empty( $field['required'] ) || ! empty( $display['readonly_required'] ) ); ?> />
99 <?php esc_html_e( 'Required', 'formidable' ); ?>
100 </label>
101 </div>
102 <?php
103 }
104
105 if ( $display['unique'] ) {
106 ?>
107 <div class="frm_form_field">
108 <label for="frm_uniq_field_<?php echo esc_attr( $field['id'] ); ?>" class="frm_help frm-mb-0" title="<?php esc_attr_e( 'Unique: Do not allow the same response multiple times. For example, if one user enters \'Joe\', then no one else will be allowed to enter the same name.', 'formidable' ); ?>"><input type="checkbox" name="field_options[unique_<?php echo esc_attr( $field['id'] ); ?>]" id="frm_uniq_field_<?php echo esc_attr( $field['id'] ); ?>" value="1" <?php checked( $field['unique'], 1 ); ?> class="frm_mark_unique" />
109 <?php esc_html_e( 'Unique', 'formidable' ); ?>
110 </label>
111 </div>
112 <?php
113 }
114
115 if ( $display['read_only'] ) {
116 ?>
117 <div class="frm_form_field">
118 <label for="frm_read_only_field_<?php echo esc_attr( $field['id'] ); ?>" class="frm_help frm-mb-0" title="<?php esc_attr_e( 'Read Only: Show this field but do not allow the field value to be edited from the front-end.', 'formidable' ); ?>" >
119 <input type="checkbox" id="frm_read_only_field_<?php echo esc_attr( $field['id'] ); ?>" name="field_options[read_only_<?php echo esc_attr( $field['id'] ); ?>]" value="1" <?php checked( $field['read_only'], 1 ); ?>/>
120 <?php esc_html_e( 'Read Only', 'formidable' ); ?>
121 </label>
122 </div>
123 <?php
124 }
125 do_action( 'frm_field_options_form_top', $field, $display, $values );
126 ?>
127 </div>
128
129 <?php
130 if ( $display['range'] ) {
131 include FrmAppHelper::plugin_path() . '/classes/views/frm-fields/back-end/number-range.php';
132 }
133
134 $field_obj->show_primary_options( compact( 'field', 'display', 'values' ) );
135
136 if ( $display['format'] ) {
137 include FrmAppHelper::plugin_path() . '/classes/views/frm-fields/back-end/format-dropdown.php';
138 FrmFieldsController::show_format_option( $field, true );
139 }
140 ?>
141
142 <?php if ( $display['css'] ) { ?>
143 <p class="frm-has-modal">
144 <label class="frm-h-stack-xs" for="frm_classes_<?php echo esc_attr( $field['id'] ); ?>">
145 <span><?php esc_html_e( 'CSS Layout Classes', 'formidable' ); ?></span>
146 <?php FrmAppHelper::tooltip_icon( __( 'Add a CSS class to the field container. Use our predefined classes to align multiple fields in single row.', 'formidable' ), array( 'class' => 'frm-flex' ) ); ?>
147 </label>
148 <span class="frm-with-right-icon">
149 <?php
150 FrmAppHelper::icon_by_class(
151 'frm_icon_font frm_more_horiz_solid_icon frm-show-inline-modal',
152 array(
153 'data-open' => 'frm-layout-classes-box',
154 'title' => esc_attr__( 'Toggle Options', 'formidable' ),
155 )
156 );
157 $css_layout_classes_attrs = array(
158 'type' => 'text',
159 'name' => 'field_options[classes_' . $field['id'] . ']',
160 'value' => $field['classes'],
161 'class' => 'frm_classes frm-token-input-field',
162 'id' => 'frm_classes_' . $field['id'],
163 'data-changeme' => 'frm_field_id_' . $field['id'],
164 'data-changeatt' => 'class',
165 'data-sep' => ' ',
166 'data-shortcode' => '0',
167 );
168 ?>
169 <input <?php FrmAppHelper::array_to_html_params( $css_layout_classes_attrs, true ); ?> />
170 </span>
171 </p>
172 <?php
173 }//end if
174 ?>
175 </div>
176
177 <?php
178
179 $field_obj->show_field_choices( compact( 'field', 'display', 'values' ) );
180
181 if ( $display['clear_on_focus'] ) {
182 do_action( 'frm_extra_field_display_options', $field );
183 }
184
185 /**
186 * Fires after printing the primary options section of field.
187 *
188 * @since 5.0.04 Added `$display` and `$values`.
189 *
190 * @param array $field Field data.
191 * @param array{field_obj:FrmFieldType, display:array, values:array} $data
192 */
193 do_action( 'frm_before_field_options', $field, compact( 'field_obj', 'display', 'values' ) );
194
195 ?>
196 <h3 class="frm-collapsed" aria-expanded="false" tabindex="0" role="button" aria-label="<?php esc_attr_e( 'Collapsible Advanced Settings', 'formidable' ); ?>" aria-controls="collapsible-section">
197 <?php esc_html_e( 'Advanced', 'formidable' ); ?>
198 <?php FrmAppHelper::icon_by_class( 'frmfont frm_arrowdown8_icon', array( 'aria-hidden' => 'true' ) ); ?>
199 </h3>
200
201 <div class="frm_grid_container frm-collapse-me" role="group">
202 <?php if ( $display['default'] ) { ?>
203 <div class="frm-has-modal frm-flex-col">
204 <?php $field_obj->show_default_value_setting( $field, $field_obj, $default_value_types, $display ); ?>
205
206 <div class="frm-hide-empty frm-flex-col frm-gap-sm frm-mb-sm frm-toggle-group">
207 <?php
208 foreach ( $default_value_types as $type => $default_value_type ) {
209 if ( 'default_value' === $type ) {
210 continue;
211 }
212
213 // Backwards compatibility "@since 6.24".
214 if ( FrmAppHelper::pro_is_connected() && ! is_callable( array( 'FrmProHtmlHelper', 'echo_radio_group' ) ) ) {
215 switch ( $type ) {
216 case 'calc':
217 $default_value_type['data'] = array(
218 'show' => '#calc-for-{id}',
219 'disable' => '#default-value-for-{id}',
220 );
221 break;
222 case 'get_values_field':
223 $default_value_type['class'] = '';
224 $default_value_type['data'] = array(
225 'show' => '.frm-lookup-box-{id}',
226 'disable' => '#default-value-for-{id}',
227 );
228 break;
229 }
230 }
231
232 $toggle_args = array(
233 'echo' => true,
234 'show_labels' => true,
235 'on_label' => $default_value_type['title'],
236 'checked' => isset( $default_value_type['current'] ),
237 'input_html' => array(
238 'data-group-name' => 'default-value',
239 'class' => $default_value_type['class'],
240 ),
241 );
242
243 foreach ( $default_value_type['data'] as $data_key => $data_value ) {
244 $toggle_args['input_html'][ 'data-' . $data_key ] = $data_value . ( substr( $data_value, -1 ) === '-' ? $field['id'] : '' );
245 }
246
247 ?>
248 <div class="frm-flex frm-gap-xs frm-items-center">
249 <?php
250 FrmHtmlHelper::toggle(
251 'frm-default-type-' . $type . '-' . $field['id'],
252 'default_type_' . $type . '[' . $field['id'] . ']',
253 $toggle_args
254 );
255
256 if ( ! empty( $default_value_type['tooltip'] ) ) {
257 FrmAppHelper::tooltip_icon( $default_value_type['tooltip'], array( 'class' => 'frm-flex' ) );
258 }
259 ?>
260 </div>
261 <?php
262 }//end foreach
263 ?>
264 </div>
265
266 <?php
267 /**
268 * Fires after printing the default value setting.
269 *
270 * @param array $field
271 * @param array $display
272 * @param array $default_value_types
273 */
274 do_action( 'frm_default_value_setting', compact( 'field', 'display', 'default_value_types' ) );
275 ?>
276 </div>
277 <?php
278 }//end if
279
280 $field_obj->show_after_default( compact( 'field', 'display' ) );
281
282 if ( $display['clear_on_focus'] ) {
283 ?>
284 <p class="frm-flex-col">
285 <label for="frm_placeholder_<?php echo esc_attr( $field['id'] ); ?>">
286 <?php esc_html_e( 'Placeholder Text', 'formidable' ); ?>
287 </label>
288 <?php
289 if ( $display['type'] === 'textarea' || $display['type'] === 'rte' ) {
290 ?>
291 <textarea name="field_options[placeholder_<?php echo esc_attr( $field['id'] ); ?>]" id="frm_placeholder_<?php echo esc_attr( $field['id'] ); ?>" rows="2" data-changeme="field_<?php echo esc_attr( $field['field_key'] ); ?>" data-changeatt="placeholder"><?php
292 echo FrmAppHelper::esc_textarea( $field['placeholder'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
293 ?></textarea>
294 <?php
295 } else {
296 ?>
297 <input type="text" name="field_options[placeholder_<?php echo esc_attr( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['placeholder'] ); ?>" id="frm_placeholder_<?php echo esc_attr( $field['id'] ); ?>" data-changeme="field_<?php echo esc_attr( $field['field_key'] ); ?>" data-changeatt="placeholder" />
298 <?php
299 }
300 ?>
301 </p>
302 <?php
303 }//end if
304
305 if ( $display['description'] ) {
306 include FrmAppHelper::plugin_path() . '/classes/views/frm-fields/back-end/field-description.php';
307 }
308
309 /**
310 * Fires after displaying the field description in a form settings.
311 *
312 * @since 6.19
313 *
314 * @param array $args {
315 * Array containing the field data.
316 *
317 * @type array $field The field settings.
318 * @type array $display The display settings for the field.
319 * @type array $values The values associated with the field.
320 * }
321 */
322 do_action( 'frm_field_options_after_description', compact( 'field', 'display', 'values' ) );
323
324 // Field Size
325 if ( $display['size'] && ! in_array( $field['type'], array( 'select', 'data', 'time' ), true ) ) {
326 $display_max = $display['max'];
327 include FrmAppHelper::plugin_path() . '/classes/views/frm-fields/back-end/pixels-wide.php';
328 }
329 ?>
330
331 <?php if ( $display['show_image'] ) { ?>
332 <p class="frm_form_field">
333 <label class="frm-force-flex frm-gap-xs" for="frm_show_image_<?php echo esc_attr( $field['id'] ); ?>">
334 <input class="frm-m-0" type="checkbox" id="frm_show_image_<?php echo esc_attr( $field['id'] ); ?>" name="field_options[show_image_<?php echo esc_attr( $field['id'] ); ?>]" value="1" <?php checked( $field['show_image'], 1 ); ?> />
335 <span class="-frm-mt-2xs"><?php esc_html_e( 'If this URL points to an image, show to image on the entries listing page.', 'formidable' ); ?></span>
336 </label>
337 </p>
338 <?php } ?>
339
340 <?php if ( $display['captcha_size'] ) { ?>
341 <p class="frm6 frm_first frm_form_field">
342 <label for="field_options_captcha_size_<?php echo esc_attr( $field['id'] ); ?>" class="frm_help" title="<?php esc_attr_e( 'Set the size of the captcha field. The compact option is best if your form is in a small area.', 'formidable' ); ?>">
343 <?php esc_html_e( 'Captcha Size', 'formidable' ); ?>
344 </label>
345 <select name="field_options[captcha_size_<?php echo esc_attr( $field['id'] ); ?>]" id="field_options_captcha_size_<?php echo esc_attr( $field['id'] ); ?>">
346 <option value="normal" <?php selected( $field['captcha_size'], 'normal' ); ?>>
347 <?php esc_html_e( 'Normal', 'formidable' ); ?>
348 </option>
349 <option value="compact" <?php selected( $field['captcha_size'], 'compact' ); ?>>
350 <?php esc_html_e( 'Compact', 'formidable' ); ?>
351 </option>
352 </select>
353 </p>
354 <?php } ?>
355 <?php if ( $display['captcha_theme'] ) { ?>
356 <p class="frm6 frm_form_field">
357 <label for="captcha_theme_<?php echo esc_attr( $field['field_key'] ); ?>">
358 <?php esc_html_e( 'Captcha Theme', 'formidable' ); ?>
359 </label>
360 <select name="field_options[captcha_theme_<?php echo esc_attr( $field['id'] ); ?>]" id="captcha_theme_<?php echo esc_attr( $field['field_key'] ); ?>">
361 <option value="light" <?php selected( $field['captcha_theme'], 'light' ); ?>>
362 <?php esc_html_e( 'Light', 'formidable' ); ?>
363 </option>
364 <option value="dark" <?php selected( $field['captcha_theme'], 'dark' ); ?>>
365 <?php esc_html_e( 'Dark', 'formidable' ); ?>
366 </option>
367 <?php if ( $display['captcha_theme_auto_option'] ) { ?>
368 <option value="auto" <?php selected( $field['captcha_theme'], 'auto' ); ?>>
369 <?php esc_html_e( 'Auto', 'formidable' ); ?>
370 </option>
371 <?php } ?>
372 </select>
373 </p>
374 <?php } ?>
375
376 <?php do_action( 'frm_field_options', compact( 'field', 'display', 'values' ) ); ?>
377
378 <?php if ( $display['required'] ) { ?>
379 <p class="frm6 frm_form_field frm_required_details<?php echo esc_attr( $field['id'] . ( $field['required'] ? '' : ' frm_hidden' ) ); ?>">
380 <label for="field_options_required_indicator_<?php echo esc_attr( $field['id'] ); ?>">
381 <?php esc_html_e( 'Required Field Indicator', 'formidable' ); ?>
382 </label>
383 <input type="text" id="field_options_required_indicator_<?php echo esc_attr( $field['id'] ); ?>" name="field_options[required_indicator_<?php echo esc_attr( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['required_indicator'] ); ?>" />
384 </p>
385 <?php } ?>
386
387 <?php if ( $display['label_position'] ) { ?>
388 <p class="frm6 frm_form_field">
389 <label for="field_options_label_<?php echo esc_attr( $field['id'] ); ?>"><?php esc_html_e( 'Label Position', 'formidable' ); ?></label>
390 <select id="field_options_label_<?php echo esc_attr( $field['id'] ); ?>" name="field_options[label_<?php echo esc_attr( $field['id'] ); ?>]">
391 <option value="" <?php selected( $field['label'], '' ); ?>>
392 <?php esc_html_e( 'Default', 'formidable' ); ?>
393 </option>
394 <?php
395 foreach ( FrmStylesHelper::get_single_label_positions( $field ) as $pos => $pos_label ) {
396 if ( ! $display['clear_on_focus'] && 'inside' === $pos ) {
397 // Don't allow inside labels for fields without placeholders.
398 continue;
399 }
400 FrmHtmlHelper::echo_dropdown_option(
401 $pos_label,
402 $pos === $field['label'],
403 array(
404 'value' => $pos,
405 )
406 );
407 }
408 if ( $field['type'] === 'divider' ) {
409 FrmHtmlHelper::echo_dropdown_option(
410 __( 'Center', 'formidable' ),
411 'center' === $field['label'],
412 array(
413 'value' => 'center',
414 )
415 );
416 }
417 ?>
418 </select>
419 </p>
420 <?php
421 }//end if
422 ?>
423
424 <p class="frm6 frm_form_field">
425 <label for="field_options_field_key_<?php echo esc_attr( $field['id'] ); ?>" class="frm_help" title="<?php esc_attr_e( 'The field key can be used as an alternative to the field ID in many cases.', 'formidable' ); ?>">
426 <?php esc_html_e( 'Field Key', 'formidable' ); ?>
427 </label>
428 <input type="text" name="field_options[field_key_<?php echo esc_attr( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['field_key'] ); ?>" id="field_options_field_key_<?php echo esc_attr( $field['id'] ); ?>"/>
429 </p>
430
431 <?php if ( count( $field_types ) > 1 ) { ?>
432 <p class="frm6 frm_form_field">
433 <label for="field_options_type_<?php echo esc_attr( $field['id'] ); ?>">
434 <?php esc_html_e( 'Field Type', 'formidable' ); ?>
435 </label>
436 <select name="field_options[type_<?php echo esc_attr( $field['id'] ); ?>]" id="field_options_type_<?php echo esc_attr( $field['id'] ); ?>">
437 <?php
438 foreach ( $field_types as $fkey => $ftype ) {
439 // We need to avoid the word "select" in POST requests.
440 // When "dropdown" is sent as a type value, we'll map it back to "select" with PHP.
441 $type_option_value = 'select' === $fkey ? 'dropdown' : $fkey;
442 $type_option_params = array( 'value' => $type_option_value );
443 if ( array_key_exists( $fkey, $disabled_fields ) ) {
444 $type_option_params['disabled'] = 'disabled';
445 }
446
447 FrmHtmlHelper::echo_dropdown_option(
448 is_array( $ftype ) ? $ftype['name'] : $ftyp,
449 $fkey === $field['type'],
450 $type_option_params
451 );
452 unset( $fkey, $ftype, $type_option_value, $type_option_params );
453 }
454 ?>
455 </select>
456 </p>
457 <?php } else { ?>
458 <input type="hidden" id="field_options_type_<?php echo esc_attr( $field['id'] ); ?>" value="<?php echo esc_attr( $field['type'] ); ?>" />
459 <?php
460 }//end if
461 ?>
462
463 <table class="form-table frm-mt-0">
464 <?php
465 $field_obj->show_options( $field, $display, $values );
466 do_action( 'frm_field_options_form', $field, $display, $values );
467 ?>
468 </table>
469 </div>
470
471 <?php if ( $display['required'] || $display['invalid'] || $display['unique'] || $display['conf_field'] ) { ?>
472 <?php
473 $hidden_invalid = FrmField::is_field_type( $field, 'text' ) && ! FrmField::is_option_true( $field, 'format' ) && FrmField::is_option_empty( $field, 'max' );
474 $has_validation = ( ( $display['invalid'] && ! $hidden_invalid ) || $field['required'] || FrmField::is_option_true( $field, 'unique' ) || FrmField::is_option_true( $field, 'conf_field' ) );
475 ?>
476 <div class="frm_validation_msg <?php echo esc_attr( $has_validation ? '' : 'frm_hidden' ); ?>">
477 <h3 class="frm-collapsed" aria-expanded="false" tabindex="0" role="button" aria-label="<?php esc_attr_e( 'Collapsible Validation Messages Settings', 'formidable' ); ?>" aria-controls="collapsible-section">
478 <?php
479 esc_html_e( 'Validation Messages', 'formidable' );
480 FrmAppHelper::icon_by_class( 'frmfont frm_arrowdown8_icon', array( 'aria-hidden' => 'true' ) );
481 ?>
482 </h3>
483
484 <div class="frm_validation_box frm-collapse-me" role="group">
485 <?php if ( $display['required'] ) { ?>
486 <p class="frm_required_details<?php echo esc_attr( $field['id'] . ( $field['required'] ? '' : ' frm_hidden' ) ); ?>">
487 <label for="field_options_blank_<?php echo esc_attr( $field['id'] ); ?>">
488 <?php esc_html_e( 'Required', 'formidable' ); ?>
489 </label>
490 <input type="text" name="field_options[blank_<?php echo esc_attr( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['blank'] ); ?>" id="field_options_blank_<?php echo esc_attr( $field['id'] ); ?>" />
491 </p>
492 <?php } ?>
493
494 <?php if ( $display['invalid'] ) { ?>
495 <p class="frm_invalid_msg<?php echo esc_attr( $field['id'] . ( $hidden_invalid ? ' frm_hidden' : '' ) ); ?>">
496 <label for="field_options_invalid_<?php echo esc_attr( $field['id'] ); ?>">
497 <?php esc_html_e( 'Invalid Format', 'formidable' ); ?>
498 </label>
499 <input type="text" name="field_options[invalid_<?php echo esc_attr( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['invalid'] ); ?>" id="field_options_invalid_<?php echo esc_attr( $field['id'] ); ?>" />
500 </p>
501 <?php
502 }
503
504 if ( $display['unique'] ) {
505 ?>
506 <p class="frm_unique_details<?php echo esc_attr( $field['id'] . ( $field['unique'] ? '' : ' frm_hidden' ) ); ?>">
507 <label for="field_options_unique_msg_<?php echo esc_attr( $field['id'] ); ?>">
508 <?php esc_html_e( 'Unique', 'formidable' ); ?>
509 </label>
510 <input type="text" name="field_options[unique_msg_<?php echo esc_attr( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['unique_msg'] ); ?>" id="field_options_unique_msg_<?php echo esc_attr( $field['id'] ); ?>" />
511 </p>
512 <?php
513 }
514
515 if ( $display['conf_field'] ) {
516 ?>
517 <p class="frm_conf_details<?php echo esc_attr( $field['id'] . ( $field['conf_field'] ? '' : ' frm_hidden' ) ); ?>">
518 <label for="field_options_conf_msg_<?php echo esc_attr( $field['id'] ); ?>">
519 <?php esc_html_e( 'Confirmation', 'formidable' ); ?>
520 </label>
521 <input type="text" name="field_options[conf_msg_<?php echo esc_attr( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['conf_msg'] ); ?>" id="field_options_conf_msg_<?php echo esc_attr( $field['id'] ); ?>" />
522 </p>
523 <?php
524 }
525 ?>
526 </div>
527 </div>
528 <?php
529 }//end if
530 ?>
531
532 <?php do_action( 'frm_after_field_options', compact( 'field', 'display', 'values' ) ); ?>
533
534 <?php if ( $display['conf_field'] ) { ?>
535 <input type="hidden" name="field_options[conf_desc_<?php echo esc_attr( $field['id'] ); ?>]" value="<?php echo esc_attr( $field['conf_desc'] ); ?>" />
536 <?php } ?>
537 </div>
538