Automattic\WooCommerce\Internal\Admin\Settings\SettingsUIPages

ProductsSettingsPageAdapter::with_field_optionsprivateWC 1.0

Add options to a field in a schema.

Method of the class: ProductsSettingsPageAdapter{}

No Hooks.

Returns

Array.

Usage

// private - for code of main (parent) class only
$result = $this->with_field_options( $schema, $field_id, $options ): array;
$schema(array) (required)
Schema.
$field_id(string) (required)
Field id.
$options(array) (required)
Field options.

ProductsSettingsPageAdapter::with_field_options() code WC 10.9.1

private function with_field_options( array $schema, string $field_id, array $options ): array {
	if ( empty( $options ) || ! isset( $schema['groups'] ) || ! is_array( $schema['groups'] ) ) {
		return $schema;
	}

	foreach ( $schema['groups'] as $group_id => $group ) {
		if ( ! isset( $group['fields'] ) || ! is_array( $group['fields'] ) ) {
			continue;
		}

		foreach ( $group['fields'] as $field_index => $field ) {
			if ( ! is_array( $field ) || ( $field['id'] ?? null ) !== $field_id ) {
				continue;
			}

			$schema['groups'][ $group_id ]['fields'][ $field_index ]['options'] = $options;
			return $schema;
		}
	}

	return $schema;
}