PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.19
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.19
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
← All changes | classes/models/fields/FrmFieldCombo.php +12 -47 6.276.19 View file →
@@ -2,9 +2,8 @@
2 2 /**
3 3 * Combo field - Field contains sub fields
4 4 *
5 5 * @package Formidable
6 - *
7 6 * @since 4.11
8 7 */
9 8
10 9 if ( ! defined( 'ABSPATH' ) ) {
@@ -16,9 +15,8 @@
16 15 /**
17 16 * Does the html for this field label need to include "for"?
18 17 *
19 18 * @var bool
20 - *
21 19 * @since 3.0
22 20 */
23 21 protected $has_for_label = false;
24 22
@@ -164,9 +162,8 @@
164 162
165 163 foreach ( $this->sub_fields as $name => $sub_field ) {
166 164 $sub_field['name'] = $name;
167 165 $wrapper_classes = 'frm_grid_container frm_sub_field_options frm_sub_field_options-' . $sub_field['name'];
168 -
169 166 if ( ! isset( $processed_sub_fields[ $name ] ) ) {
170 167 // Options for this subfield should be hidden.
171 168 $wrapper_classes .= ' frm_hidden';
172 169 }
@@ -224,9 +221,9 @@
224 221 *
225 222 * @return array
226 223 */
227 224 protected function field_settings_for_type() {
228 - return array(
225 + $settings = array(
229 226 'description' => false,
230 227 'default' => false,
231 228 // Don't use the regular placeholder option.
232 229 'clear_on_focus' => false,
@@ -232,8 +229,10 @@
232 229 'clear_on_focus' => false,
233 230 'logic' => true,
234 231 'visibility' => true,
235 232 );
233 +
234 + return $settings;
236 235 }
237 236
238 237 /**
239 238 * Shows field on the form builder.
@@ -267,9 +266,8 @@
267 266 * Shows field in the frontend.
268 267 *
269 268 * @param array $args Arguments.
270 269 * @param array $shortcode_atts Shortcode attributes.
271 - *
272 270 * @return string
273 271 */
274 272 public function front_field_input( $args, $shortcode_atts ) {
275 273 $field = (array) $this->field;
@@ -274,9 +272,8 @@
274 272 public function front_field_input( $args, $shortcode_atts ) {
275 273 $field = (array) $this->field;
276 274
277 275 $field['default_value'] = $this->get_default_value();
278 -
279 276 if ( empty( $field['value'] ) ) {
280 277 $field['value'] = $field['default_value'];
281 278 }
282 279
@@ -284,10 +281,11 @@
284 281 $args['shortcode_atts'] = $shortcode_atts;
285 282
286 283 ob_start();
287 284 $this->load_field_output( $args );
285 + $input_html = ob_get_clean();
288 286
289 - return ob_get_clean();
287 + return $input_html;
290 288 }
291 289
292 290 /**
293 291 * Loads field output.
@@ -376,9 +374,8 @@
376 374
377 375 // Placeholder.
378 376 if ( in_array( 'placeholder', $sub_field['options'], true ) ) {
379 377 $placeholders = FrmField::get_option( $field, 'placeholder' );
380 -
381 378 if ( ! empty( $placeholders[ $sub_field['name'] ] ) ) {
382 379 $field['placeholder'] = $placeholders[ $sub_field['name'] ];
383 380 }
384 381 }
@@ -383,10 +380,9 @@
383 380 }
384 381 }
385 382
386 383 // Add optional class.
387 - $classes = $sub_field['classes'] ?? '';
388 -
384 + $classes = isset( $sub_field['classes'] ) ? $sub_field['classes'] : '';
389 385 if ( is_array( $classes ) ) {
390 386 $classes = implode( ' ', $classes );
391 387 }
392 388
@@ -403,9 +399,8 @@
403 399
404 400 if ( ! empty( $sub_field['name'] ) ) {
405 401 $field['subfield_name'] = $sub_field['name'];
406 402 }
407 -
408 403 do_action( 'frm_field_input_html', $field );
409 404
410 405 // Print custom attributes.
411 406 if ( ! empty( $sub_field['atts'] ) && is_array( $sub_field['atts'] ) ) {
@@ -418,13 +413,12 @@
418 413 /**
419 414 * Validate field.
420 415 *
421 416 * @param array $args Arguments. Includes `errors`, `value`.
422 - *
423 417 * @return array Errors array.
424 418 */
425 419 public function validate( $args ) {
426 - $errors = $args['errors'] ?? array();
420 + $errors = isset( $args['errors'] ) ? $args['errors'] : array();
427 421
428 422 if ( ! $this->field->required ) {
429 423 return $errors;
430 424 }
@@ -436,9 +430,10 @@
436 430 if ( class_exists( 'FrmProFieldsHelper' ) && ! FrmProFieldsHelper::is_field_visible_to_user( $this->field ) ) {
437 431 return $errors;
438 432 }
439 433
440 - $blank_msg = FrmFieldsHelper::get_error_msg( $this->field, 'blank' );
434 + $blank_msg = FrmFieldsHelper::get_error_msg( $this->field, 'blank' );
435 +
441 436 $sub_fields = $this->get_processed_sub_fields();
442 437
443 438 // Validate not empty.
444 439 foreach ( $sub_fields as $name => $sub_field ) {
@@ -457,13 +452,12 @@
457 452 * @return array
458 453 */
459 454 public function get_export_headings() {
460 455 $headings = array();
461 - $field_id = $this->field->id ?? $this->field['id'];
462 - $field_name = $this->field->name ?? $this->field['name'];
463 - $field_key = $this->field->field_key ?? $this->field['field_key'];
456 + $field_id = isset( $this->field->id ) ? $this->field->id : $this->field['id'];
457 + $field_name = isset( $this->field->name ) ? $this->field->name : $this->field['name'];
458 + $field_key = isset( $this->field->field_key ) ? $this->field->field_key : $this->field['field_key'];
464 459 $sub_fields = $this->get_processed_sub_fields();
465 -
466 460 foreach ( $sub_fields as $name => $sub_field ) {
467 461 $headings[ $field_id . '_' . $name ] = $field_name . ' (' . $field_key . ') - ' . $sub_field['label'];
468 462 }
469 463
@@ -508,35 +502,6 @@
508 502 return array(
509 503 'class' => 'frm_combo_inputs_container',
510 504 'id' => 'frm_combo_inputs_container_' . $this->field_id,
511 505 );
512 - }
513 -
514 - /**
515 - * Gets subfield input attributes.
516 - *
517 - * @since 6.26
518 - *
519 - * @param array $sub_field Subfield data.
520 - * @param array $args Field output args. See {@see FrmFieldCombo::load_field_output()}.
521 - *
522 - * @return array
523 - */
524 - protected function get_sub_field_input_attrs( $sub_field, $args ) {
525 - $attrs = array(
526 - 'type' => $sub_field['type'],
527 - 'id' => $args['html_id'] . '_' . $sub_field['name'],
528 - 'value' => '',
529 - );
530 -
531 - if ( ! empty( $args['field']['value'][ $sub_field['name'] ] ) ) {
532 - $attrs['value'] = $args['field']['value'][ $sub_field['name'] ];
533 - $attrs['data-frmval'] = $args['field']['value'][ $sub_field['name'] ];
534 - }
535 -
536 - if ( empty( $args['remove_names'] ) ) {
537 - $attrs['name'] = $args['field_name'] . '[' . $sub_field['name'] . ']';
538 - }
539 -
540 - return $attrs;
541 506 }
542 507 }