You are here

public static function PaymentLineItemsInput::deleteSubmit in Payment 8.2

Implements form #submit callback.

File

src/Element/PaymentLineItemsInput.php, line 285

Class

PaymentLineItemsInput
Provides a payment line items configuration element.

Namespace

Drupal\payment\Element

Code

public static function deleteSubmit(array &$form, FormStateInterface $form_state) {
  $triggering_element = $form_state
    ->getTriggeringElement();
  $root_element_parents = array_slice($triggering_element['#array_parents'], 0, -3);
  $root_element = NestedArray::getValue($form, $root_element_parents);
  $parents = $triggering_element['#array_parents'];
  $line_item_name = $parents[count($parents) - 2];

  /** @var \Drupal\payment\Plugin\Payment\LineItem\PaymentLineItemInterface[] $line_items */
  $line_items = array_values(static::getLineItems($root_element, $form_state));
  foreach ($line_items as $i => $line_item) {
    if ($line_item
      ->getName() == $line_item_name) {
      unset($line_items[$i]);
    }
  }
  static::setLineItems($root_element, $form_state, $line_items);
  $form_state
    ->setRebuild();
}