llms_form_field( array $field = array(), boolean $echo = true )
Generate the HTML for a form field
Description Description
this function is used during AJAX calls so needs to be in a core file loaded during AJAX calls!
Parameters Parameters
- $field
-
(array) (Optional) field data
Default value: array()
- $echo
-
(boolean) (Optional) echo the data if true, return otherwise
Default value: true
Return Return
(void|string)
Source Source
File: includes/llms.functions.core.php
function llms_form_field( $field = array(), $echo = true ) { $field = wp_parse_args( $field, array( 'columns' => 12, 'classes' => '', 'description' => '', 'default' => '', 'disabled' => false, 'id' => '', 'label' => '', 'last_column' => true, 'match' => '', 'max_length' => '', 'min_length' => '', 'name' => '', 'options' => array(), 'placeholder' => '', 'required' => false, 'selected' => '', 'style' => '', 'type' => 'text', 'value' => '', 'wrapper_classes' => '', ) ); // setup the field value (if one exists) if ( '' !== $field['value'] ) { $field['value'] = $field['value']; } elseif ( '' !== $field['default'] ) { $field['value'] = $field['default']; } $value_attr = ( '' !== $field['value'] ) ? ' value="' . $field['value'] . '"' : ''; // use id as the name if name isn't specified $field['name'] = ( '' === $field['name'] ) ? $field['id'] : $field['name']; // allow items to not have a name attr (eg: not be posted via form submission) // example use case found in Stripe CC fields if ( false === $field['name'] ) { $name_attr = ''; } else { $name_attr = ' name="' . $field['name'] . '"'; } $field['placeholder'] = wp_strip_all_tags( $field['placeholder'] ); // add inline css if set $field['style'] = ( $field['style'] ) ? ' style="' . $field['style'] . '"' : ''; // add space to classes $field['wrapper_classes'] = ( $field['wrapper_classes'] ) ? ' ' . $field['wrapper_classes'] : ''; $field['classes'] = ( $field['classes'] ) ? ' ' . $field['classes'] : ''; // add column information to the wrapper $field['wrapper_classes'] .= ' llms-cols-' . $field['columns']; $field['wrapper_classes'] .= ( $field['last_column'] ) ? ' llms-cols-last' : ''; $desc = $field['description'] ? '<span class="llms-description">' . $field['description'] . '</span>' : ''; // required attributes and content $required_char = apply_filters( 'lifterlms_form_field_required_character', '*', $field ); $required_span = $field['required'] ? ' <span class="llms-required">' . $required_char . '</span>' : ''; $required_attr = $field['required'] ? ' required="required"' : ''; // setup the label $label = $field['label'] ? '<label for="' . $field['id'] . '">' . $field['label'] . $required_span . '</label>' : ''; $r = '<div class="llms-form-field type-' . $field['type'] . $field['wrapper_classes'] . '">'; if ( 'hidden' !== $field['type'] && 'checkbox' !== $field['type'] && 'radio' !== $field['type'] ) { $r .= $label; } $disabled_attr = ( $field['disabled'] ) ? ' disabled="disabled"' : ''; $min_attr = ( $field['min_length'] ) ? ' minlength="' . $field['min_length'] . '"' : ''; $max_attr = ( $field['max_length'] ) ? ' maxlength="' . $field['max_length'] . '"' : ''; switch ( $field['type'] ) { case 'button': case 'reset': case 'submit': $r .= '<button class="llms-field-button' . $field['classes'] . '" id="' . $field['id'] . '" type="' . $field['type'] . '"' . $disabled_attr . $name_attr . $field['style'] . '>' . $field['value'] . '</button>'; break; case 'checkbox': case 'radio': $checked = ( true === $field['selected'] ) ? ' checked="checked"' : ''; $r .= '<input class="llms-field-input' . $field['classes'] . '" id="' . $field['id'] . '" type="' . $field['type'] . '"' . $checked . $disabled_attr . $name_attr . $required_attr . $value_attr . $field['style'] . '>'; $r .= $label; break; case 'html': $r .= '<div class="llms-field-html' . $field['classes'] . '" id="' . $field['id'] . '">' . $field['value'] . '</div>'; break; case 'select': $r .= '<select class="llms-field-select' . $field['classes'] . '" id="' . $field['id'] . '" ' . $disabled_attr . $name_attr . $required_attr . $field['style'] . '>'; foreach ( $field['options'] as $k => $v ) { $r .= '<option value="' . $k . '"' . selected( $k, $field['value'], false ) . '>' . $v . '</option>'; } $r .= '</select>'; break; case 'textarea': $r .= '<textarea class="llms-field-textarea' . $field['classes'] . '" id="' . $field['id'] . '" placeholder="' . $field['placeholder'] . '"' . $disabled_attr . $name_attr . $required_attr . $field['style'] . '>' . $field['value'] . '</textarea>'; break; default: $r .= '<input class="llms-field-input' . $field['classes'] . '" id="' . $field['id'] . '" placeholder="' . $field['placeholder'] . '" type="' . $field['type'] . '"' . $disabled_attr . $name_attr . $min_attr . $max_attr . $required_attr . $value_attr . $field['style'] . '>'; } if ( 'hidden' !== $field['type'] ) { $r .= $desc; } $r .= '</div>'; if ( $field['last_column'] ) { $r .= '<div class="clear"></div>'; } $r = apply_filters( 'llms_form_field', $r, $field ); if ( $echo ) { echo $r; return; } else { return $r; } }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
3.0.0 | Introduced. |
User Contributed Notes User Contributed Notes
Permalink: