public static function PaymentLineItemsInput::validate in Payment 8.2
Implements form #element_validate callback.
File
- src/
Element/ PaymentLineItemsInput.php, line 235
Class
- PaymentLineItemsInput
- Provides a payment line items configuration element.
Namespace
Drupal\payment\ElementCode
public static function validate(array $element, FormStateInterface $form_state, array &$form) {
// Reorder line items based on their weight elements.
$line_items = [];
$values = $form_state
->getValues();
$values = NestedArray::getValue($values, $element['#parents']);
if ($values['line_items']) {
foreach ($values['line_items'] as $name => $line_item_values) {
$line_items[$name] = $line_item_values['weight'];
}
asort($line_items);
foreach (static::getLineItems($element, $form_state) as $line_item) {
$line_items[$line_item
->getName()] = $line_item;
$line_item
->validateConfigurationForm($element['line_items'][$line_item
->getName()]['plugin_form'], $form_state);
// @todo Don't call the submit handler if plugin validation failed.
$line_item
->submitConfigurationForm($element['line_items'][$line_item
->getName()]['plugin_form'], $form_state);
}
static::setLineItems($element, $form_state, array_values($line_items));
}
}