class = implode( ' ', $class ); parent::__construct( $props, $settings ); } // # RENDER METHODS ------------------------------------------------------------------------------------------------ /** * Render field. * * @since 2.5 * * @return string */ public function markup() { // Get choices, selected value, classes. $choices = $this->get_choices(); $selected_value = $this->get_value(); $has_icons = self::has_icons( $choices ); $has_tag = self::has_tag( $choices ); $icon_class = ' gform-settings-choice--visual'; // If no choices exist, return. if ( $choices === false || empty( $choices ) ) { return ''; } // Display description. $html = $this->get_description(); $html .= ''; // Create inputs from choices. foreach ( $choices as $i => $choice ) { // Prepare choice attributes. $choice['id'] = rgempty( 'id', 'choice' ) ? sprintf( '%s%s', $this->name, $i ) : $choice['id']; $choice_value = rgar( $choice, 'value' ) ? $choice['value'] : $choice['label']; $choice_tooltip = $this->settings->maybe_get_tooltip( $choice ); // Get input. $choice_input = sprintf( '', $this->settings->get_input_name_prefix(), $this->name, $choice_value, checked( $selected_value, $choice_value, false ), implode( ' ', self::get_choice_attributes( $choice, $this->get_attributes() ) ) ); // Get icon markup. if ( $has_icons ) { // Get the defined icon or use default. $icon_markup = GFCommon::get_icon_markup( $choice, 'fa-cog' ); } // Get tag markup. if ( $has_tag ) { $color = rgar( $choice, 'color' ) ? $choice['color'] : 'port'; $tag_markup = '' . esc_html( $choice['tag'] ) . ''; } // Get description markup. $description_markup = '
'; if ( rgar( $choice, 'title' ) ) { $description_markup .= '' . esc_html( $choice['title'] ) . ''; } if ( rgar( $choice, 'description' ) ) { $description_markup .= '

' . esc_html( $choice['description'] ) . '

'; } $description_markup .= '
'; $html .= sprintf( '
%3$s %8$s
', esc_attr( $choice['id'] ), $icon_class, $choice_input, isset( $icon_markup ) ? $icon_markup : '', esc_html( $choice['label'] ), isset( $tag_markup ) ? $tag_markup : '', $choice_tooltip, $description_markup ); } // Wrap visual choices with container. if ( ! empty( $icon_class ) ) { $html = sprintf( '
%s
', $html ); } // If field failed validation, add error icon. $html .= $this->get_error_icon(); $html .= '
'; return $html; } } Fields::register( 'card', '\Gravity_Forms\Gravity_Forms\Settings\Fields\Card' );