esc_html__( 'Delete', 'brunch-lite' ) ) ); } /** * Get field HTML * * @param mixed $meta * @param array $field * @return string */ static function html( $meta, $field ) { if ( ! is_array( $meta ) ) { $meta = array( $meta ); } $field = apply_filters( 'rwmb_autocomplete_field', $field, $meta ); $options = $field['options']; if ( ! is_string( $field['options'] ) ) { $options = array(); foreach ( (array) $field['options'] as $value => $label ) { $options[] = array( 'value' => $value, 'label' => $label, ); } $options = wp_json_encode( $options ); } // Input field that triggers autocomplete. // This field doesn't store field values, so it doesn't have "name" attribute. // The value(s) of the field is store in hidden input(s). See below. $html = sprintf( ' ', $field['size'], $field['field_name'], esc_attr( $options ) ); $html .= '
'; // Each value is displayed with label and 'Delete' option // The hidden input has to have ".rwmb-*" class to make clone work $tpl = '
%s
%s
'; if ( is_array( $field['options'] ) ) { foreach ( $field['options'] as $value => $label ) { if ( in_array( $value, $meta ) ) { $html .= sprintf( $tpl, $label, esc_html__( 'Delete', 'brunch-lite' ), $field['field_name'], $value ); } } } else { foreach ( $meta as $value ) { if ( empty( $value ) ) { continue; } $label = apply_filters( 'rwmb_autocomplete_result_label', $value, $field ); $html .= sprintf( $tpl, $label, esc_html__( 'Delete', 'brunch-lite' ), $field['field_name'], $value ); } } $html .= '
'; // .rwmb-autocomplete-results return $html; } /** * Normalize parameters for field * * @param array $field * @return array */ static function normalize( $field ) { $field = parent::normalize( $field ); $field = wp_parse_args( $field, array( 'size' => 30, ) ); return $field; } }