PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / trunk
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More vtrunk
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 +17 -17 6.27 → trunk View file →
@@ -55,9 +55,9 @@
55 55 protected function register_sub_fields( array $sub_fields ) {
56 56 $defaults = $this->get_default_sub_field();
57 57
58 58 foreach ( $sub_fields as $name => $sub_field ) {
59 - if ( empty( $sub_field ) ) {
59 + if ( ! $sub_field ) {
60 60 continue;
61 61 }
62 62
63 63 if ( is_array( $sub_field ) ) {
@@ -407,13 +407,15 @@
407 407
408 408 do_action( 'frm_field_input_html', $field );
409 409
410 410 // Print custom attributes.
411 - if ( ! empty( $sub_field['atts'] ) && is_array( $sub_field['atts'] ) ) {
412 - foreach ( $sub_field['atts'] as $att_name => $att_value ) {
413 - echo esc_attr( trim( $att_name ) ) . '="' . esc_attr( trim( $att_value ) ) . '" ';
414 - }
411 + if ( empty( $sub_field['atts'] ) || ! is_array( $sub_field['atts'] ) ) {
412 + return;
415 413 }
414 +
415 + foreach ( $sub_field['atts'] as $att_name => $att_value ) {
416 + echo esc_attr( trim( $att_name ) ) . '="' . esc_attr( trim( $att_value ) ) . '" ';
417 + }
416 418 }
417 419
418 420 /**
419 421 * Validate field.
@@ -432,21 +434,19 @@
432 434 if ( class_exists( 'FrmProEntryMeta' ) && FrmProEntryMeta::skip_required_validation( $this->field ) ) {
433 435 return $errors;
434 436 }
435 437
436 - if ( class_exists( 'FrmProFieldsHelper' ) && ! FrmProFieldsHelper::is_field_visible_to_user( $this->field ) ) {
437 - return $errors;
438 - }
439 -
440 438 $blank_msg = FrmFieldsHelper::get_error_msg( $this->field, 'blank' );
441 439 $sub_fields = $this->get_processed_sub_fields();
442 440
443 441 // Validate not empty.
444 442 foreach ( $sub_fields as $name => $sub_field ) {
445 - if ( empty( $sub_field['optional'] ) && empty( $args['value'][ $name ] ) ) {
446 - $errors[ 'field' . $args['id'] . '-' . $name ] = '';
447 - $errors[ 'field' . $args['id'] ] = $blank_msg;
443 + if ( ! empty( $sub_field['optional'] ) || ! empty( $args['value'][ $name ] ) ) {
444 + continue;
448 445 }
446 +
447 + $errors[ 'field' . $args['id'] . '-' . $name ] = '';
448 + $errors[ 'field' . $args['id'] ] = $blank_msg;
449 449 }
450 450
451 451 return $errors;
452 452 }
@@ -457,15 +457,15 @@
457 457 * @return array
458 458 */
459 459 public function get_export_headings() {
460 460 $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'];
461 + $field_id = is_object( $this->field ) ? $this->field->id : $this->field['id'];
462 + $field_name = is_object( $this->field ) ? $this->field->name : $this->field['name'];
464 463 $sub_fields = $this->get_processed_sub_fields();
465 464
465 + // Include sub-field headings.
466 466 foreach ( $sub_fields as $name => $sub_field ) {
467 - $headings[ $field_id . '_' . $name ] = $field_name . ' (' . $field_key . ') - ' . $sub_field['label'];
467 + $headings[ $field_id . '_' . $name ] = $field_name . ' - ' . $sub_field['label'];
468 468 }
469 469
470 470 return $headings;
471 471 }
@@ -503,9 +503,9 @@
503 503 * Gets inputs container attributes.
504 504 *
505 505 * @return array
506 506 */
507 - protected function get_inputs_container_attrs() {
507 + public function get_inputs_container_attrs() {
508 508 return array(
509 509 'class' => 'frm_combo_inputs_container',
510 510 'id' => 'frm_combo_inputs_container_' . $this->field_id,
511 511 );