allow_render_now( $atts ) ) { return ''; } $label = isset( $atts['label'] ) ? $atts['label'] : 'Name'; $name = isset( $atts['name'] ) ? sanitize_key( $atts['name'] ) : 'full_name'; if ( '' === $name ) { $name = 'full_name'; } $required = ! empty( $atts['required'] ); $require_first = $required || ! empty( $atts['requireFirst'] ); $require_last = $required || ! empty( $atts['requireLast'] ); $show_middle = ! empty( $atts['showMiddle'] ); $disabled = $this->get_field_boolean_attr( $atts, 'disabled', 'disabled' ); $readonly = $this->get_field_boolean_attr( $atts, 'readOnly', 'readonly' ); $label_pos = $this->get_field_label_position( $atts ); $class = $this->build_field_wrapper_class( 'name', $atts ); $style_rules = $this->get_field_wrapper_style_rules( $atts ); $help = $this->get_field_help_context( $atts, $name ); $aria_desc = $help['aria_describedby']; $aria_label = $this->get_field_aria_label_attr( $atts ); $input_style = $this->build_style_attribute( $this->get_input_style_rules( $atts ) ); $id_base = 'stacklar-name-' . $name . '-' . wp_generate_password( 6, false, false ); $label_html = $this->render_field_label( $id_base . '-first', $label, $required, $label_pos, $atts ); $parts = array( array( 'key' => 'first', 'label' => isset( $atts['firstLabel'] ) ? $atts['firstLabel'] : __( 'First', 'stacklar-forms' ), 'placeholder' => isset( $atts['firstPlaceholder'] ) ? $atts['firstPlaceholder'] : '', 'defaultValue' => isset( $atts['firstDefault'] ) ? $atts['firstDefault'] : '', 'required' => $require_first, 'autocomplete' => 'given-name', ), ); if ( $show_middle ) { $parts[] = array( 'key' => 'middle', 'label' => isset( $atts['middleLabel'] ) ? $atts['middleLabel'] : __( 'Middle', 'stacklar-forms' ), 'placeholder' => isset( $atts['middlePlaceholder'] ) ? $atts['middlePlaceholder'] : '', 'defaultValue' => isset( $atts['middleDefault'] ) ? $atts['middleDefault'] : '', 'required' => false, 'autocomplete' => 'additional-name', ); } $parts[] = array( 'key' => 'last', 'label' => isset( $atts['lastLabel'] ) ? $atts['lastLabel'] : __( 'Last', 'stacklar-forms' ), 'placeholder' => isset( $atts['lastPlaceholder'] ) ? $atts['lastPlaceholder'] : '', 'defaultValue' => isset( $atts['lastDefault'] ) ? $atts['lastDefault'] : '', 'required' => $require_last, 'autocomplete' => 'family-name', ); $fields_html = ''; foreach ( $parts as $part ) { $part_key = sanitize_key( $part['key'] ); $id = $id_base . '-' . $part_key; $fields_html .= '
'; $fields_html .= ''; $fields_html .= '
'; $fields_html .= ''; $fields_html .= '
'; $fields_html .= '
'; } $meta_payload = array( 'required' => $required ? 1 : 0, 'requireFirst' => $require_first ? 1 : 0, 'requireLast' => $require_last ? 1 : 0, 'showMiddle' => $show_middle ? 1 : 0, ); $control_html = '
' . $fields_html . '
'; $control_html .= ''; $content_html = $this->render_field_content( $label_html, $control_html, $label_pos, $help['help_html'] ); $html = $this->render_wrapper_open( $atts, $class, $style_rules, array( 'label' => '> label, .stacklar__inline > label, .stacklar-name-part-label', 'input' => 'input', ) ); $html .= $content_html; $html .= $this->render_wrapper_close(); return $html; } }