Automattic\WooCommerce\StoreApi\Schemas\V1
CheckoutSchema::generate_additional_fields_schema
Generate the schema for additional fields.
Метод класса: CheckoutSchema{}
Хуков нет.
Возвращает
Массив.
Использование
// protected - в коде основоного (родительского) или дочернего класса $result = $this->generate_additional_fields_schema( ...$args );
- ...$args(array[]) (обязательный)
- One or more arrays of additional fields.
Код CheckoutSchema::generate_additional_fields_schema() CheckoutSchema::generate additional fields schema WC 11.0.1
protected function generate_additional_fields_schema( ...$args ) {
$additional_fields = array_merge( ...$args );
$schema = [];
foreach ( $additional_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 ( true !== $field['required'] || $this->additional_fields_controller->is_conditional_field( $field ) ) {
$field_schema['enum'][] = '';
}
}
if ( 'checkbox' === $field['type'] ) {
$field_schema['type'] = 'boolean';
}
if ( 'checkbox' === $field['type'] && true === $field['required'] ) {
$field_schema['enum'][] = true;
}
$schema[ $key ] = $field_schema;
}
return $schema;
}