Sanitizes the settings fields.
Description
See also
Source
File: src/db-objects/elements/element-types/element-type.php
protected final function sanitize_settings_fields() { $defaults = array( 'section' => '', 'type' => 'text', 'label' => '', 'description' => '', 'is_label' => false, 'is_choices' => false, ); $invalid_fields = array(); $valid_sections = array(); foreach ( $this->settings_fields as $slug => $field ) { if ( empty( $field['section'] ) || ! isset( $this->settings_sections[ $field['section'] ] ) ) { /* translators: %s: field section slug */ $this->manager->error_handler()->doing_it_wrong( get_class( $this ) . '::bootstrap()', sprintf( __( 'Invalid element type field section %s.', 'torro-forms' ), esc_html( $field['section'] ) ), '1.0.0' ); $invalid_fields[ $slug ] = true; continue; } if ( empty( $field['type'] ) || ! Field_Manager::is_field_type_registered( $field['type'] ) ) { /* translators: %s: field type slug */ $this->manager->error_handler()->doing_it_wrong( get_class( $this ) . '::bootstrap()', sprintf( __( 'Invalid element type field type %s.', 'torro-forms' ), esc_html( $field['type'] ) ), '1.0.0' ); $invalid_fields[ $slug ] = true; continue; } if ( in_array( $field['type'], array( 'multiselect', 'multibox', 'group' ), true ) || empty( $field['is_choices'] ) && 'torrochoices' === $field['type'] ) { /* translators: %s: field type slug */ $this->manager->error_handler()->doing_it_wrong( get_class( $this ) . '::bootstrap()', sprintf( __( 'Disallowed element type field type %s.', 'torro-forms' ), esc_html( $field['type'] ) ), '1.0.0' ); $invalid_fields[ $slug ] = true; continue; } if ( ! empty( $field['repeatable'] ) && empty( $field['is_choices'] ) ) { /* translators: %s: field type slug */ $this->manager->error_handler()->doing_it_wrong( get_class( $this ) . '::bootstrap()', __( 'Disallowed repeatable element type field.', 'torro-forms' ), '1.0.0' ); $invalid_fields[ $slug ] = true; continue; } $valid_sections[ $field['section'] ] = true; $this->settings_fields[ $slug ] = array_merge( $defaults, $field ); } $this->settings_fields = array_diff_key( $this->settings_fields, $invalid_fields ); $this->settings_sections = array_intersect_key( $this->settings_sections, $valid_sections ); }
Changelog
Version | Description |
---|---|
1.0.0 | Introduced. |