public function TaxNumberDefaultWidget::massageFormValues in Commerce Core 8.2
Massages the form values into the format expected for field values.
Parameters
array $values: The submitted form values produced by the widget.
- If the widget does not manage multiple values itself, the array holds the values generated by the multiple copies of the $element generated by the formElement() method, keyed by delta.
- If the widget manages multiple values, the array holds the values of the form element generated by the formElement() method.
array $form: The form structure where field elements are attached to. This might be a full form structure, or a sub-element of a larger form.
\Drupal\Core\Form\FormStateInterface $form_state: The form state.
Return value
array An array of field values, keyed by delta.
Overrides WidgetBase::massageFormValues
File
- modules/
tax/ src/ Plugin/ Field/ FieldWidget/ TaxNumberDefaultWidget.php, line 140
Class
- TaxNumberDefaultWidget
- Plugin implementation of the 'commerce_tax_number_default' widget.
Namespace
Drupal\commerce_tax\Plugin\Field\FieldWidgetCode
public function massageFormValues(array $values, array $form, FormStateInterface $form_state) {
foreach ($values as $delta => $value) {
if (empty($value['value'])) {
continue;
}
/** @var \Drupal\commerce_tax\Plugin\Commerce\TaxNumberType\TaxNumberTypeInterface $type_plugin */
$type_plugin = $this->taxNumberTypeManager
->createInstance($value['type']);
$value['value'] = $type_plugin
->canonicalize($value['value']);
// Preserve the previous verification if the number hasn't changed.
$original = $value['original'];
if ($original['type'] == $value['type'] && $original['value'] == $value['value']) {
$value['verification_state'] = $original['verification_state'];
$value['verification_timestamp'] = $original['verification_timestamp'];
$value['verification_result'] = $original['verification_result'];
}
unset($value['original']);
$values[$delta] = $value;
}
return $values;
}