public function PaymentReferenceBase::ajaxPay in Payment 8.2
Implements form AJAX callback.
File
- src/
Element/ PaymentReferenceBase.php, line 487
Class
- PaymentReferenceBase
- Provides a base for payment reference elements.
Namespace
Drupal\payment\ElementCode
public function ajaxPay(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);
$response = new AjaxResponse();
$response
->addCommand(new ReplaceCommand('#' . $root_element['container']['#id'], $this->renderer
->render($root_element['container'])));
/** @var \Drupal\payment\Plugin\Payment\Method\PaymentMethodInterface $selected_payment_method */
$selected_payment_method = $this
->getPluginSelector($root_element, $form_state)
->getSelectedPlugin();
if (!$selected_payment_method
->getPaymentExecutionResult()
->isCompleted()) {
$link = $this
->buildCompletePaymentLink($root_element, $form_state);
$response
->addCommand(new OpenModalDialogCommand($this
->t('Complete payment'), $this->renderer
->render($link)));
}
return $response;
}