Automattic\WooCommerce\StoreApi\Schemas\V1
AbstractAddressSchema::get_additional_address_fields_schema
Get additional address fields schema.
Method of the class: AbstractAddressSchema{}
No Hooks.
Returns
Array.
Usage
// protected - for code of main (parent) or child class $result = $this->get_additional_address_fields_schema();
AbstractAddressSchema::get_additional_address_fields_schema() AbstractAddressSchema::get additional address fields schema code WC 10.8.1
protected function get_additional_address_fields_schema() {
$additional_fields_keys = $this->additional_fields_controller->get_address_fields_keys();
$fields = $this->additional_fields_controller->get_additional_fields();
$address_fields = array_filter(
$fields,
function ( $key ) use ( $additional_fields_keys ) {
return in_array( $key, $additional_fields_keys, true );
},
ARRAY_FILTER_USE_KEY
);
$schema = [];
foreach ( $address_fields as $key => $field ) {
$field_schema = [
'description' => $field['label'],
'type' => 'string',
'context' => [ 'view', 'edit' ],
'required' => $this->additional_fields_controller->is_conditional_field( $field ) ? false : true === $field['required'],
];
if ( 'select' === $field['type'] ) {
$field_schema['enum'] = array_map(
function ( $option ) {
return $option['value'];
},
$field['options']
);
}
if ( 'checkbox' === $field['type'] ) {
$field_schema['type'] = 'boolean';
}
$schema[ $key ] = $field_schema;
}
return $schema;
}