Returns all fields for request parameters.
Description
This method can be used by the get_element_map_fields() and get_meta_map_fields() methods to get the full list and then filter the parameter fields that should be mappable.
See also
Return
(array) Associative array of <code>$field_slug => $field_args</code> pairs.
Source
File: src/modules/actions/api-action.php
protected function get_parameter_fields() { $structure = $this->api_structure(); $route = $this->api_route(); $method = $this->api_request_method; $mode = $this->api()->get_mode(); $params = array_merge( $structure->get_base_uri_params( $mode ), $route->get_method_params( $method ) ); $fields = array(); foreach ( $params as $param => $param_info ) { if ( ! empty( $param_info['internal'] ) ) { continue; } $field = array( 'label' => $param, 'description' => $param_info['description'], 'default' => $param_info['default'], 'required' => $param_info['required'], ); switch ( $param_info['type'] ) { case 'boolean': $field['type'] = 'checkbox'; break; case 'float': case 'number': $field['type'] = 'number'; $field['step'] = 0.001; break; case 'integer': $field['type'] = 'number'; $field['step'] = 1; break; case 'array': if ( ! empty( $param_info['enum'] ) ) { $field['type'] = 'multiselect'; $field['choices'] = array_combine( $param_info['enum'], $param_info['enum'] ); } elseif ( ! empty( $param_info['items']['enum'] ) ) { $field['type'] = 'multiselect'; $field['choices'] = array_combine( $param_info['items']['enum'], $param_info['items']['enum'] ); } elseif ( ! empty( $param_info['items']['type'] ) ) { $field['repeatable'] = true; switch ( $param_info['items']['type'] ) { case 'boolean': $field['type'] = 'checkbox'; break; case 'float': case 'number': $field['type'] = 'number'; $field['step'] = 0.001; break; case 'integer': $field['type'] = 'number'; $field['step'] = 1; break; case 'string': default: $field['type'] = 'text'; } } else { $field['type'] = 'text'; $field['repeatable'] = true; } break; case 'string': default: if ( ! empty( $param_info['enum'] ) ) { $field['type'] = 'select'; $field['choices'] = array_combine( $param_info['enum'], $param_info['enum'] ); } else { $field['type'] = 'text'; } } $fields[ $param ] = $field; } return $fields; }
Changelog
Version | Description |
---|---|
1.0.0 | Introduced. |