Automattic\WooCommerce\StoreApi\Schemas\V1

CheckoutSchema::generate_additional_fields_schema │ protected │ WC 1.0

Generate the schema for additional fields.

Метод класса: CheckoutSchema{}

Хуков нет.

Возвращает

array.

Использование

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->generate_additional_fields_schema( ...$args );
...$args(array[]) (обязательный)
One or more arrays of additional fields.

Код CheckoutSchema::generate_additional_fields_schema() WC 11.2.2

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'],
		];

		$field_schema = $this->additional_fields_controller->prepare_field_value_schema( $field_schema, $field );

		if ( 'select' === $field['type'] && ( true !== $field['required'] || $this->additional_fields_controller->is_conditional_field( $field ) ) ) {
			$field_schema['enum'][] = '';
		}

		if ( 'checkbox' === $field['type'] && true === $field['required'] ) {
			$field_schema['enum'][] = true;
		}

		$schema[ $key ] = $field_schema;
	}
	return $schema;
}