You are here

function commerce_payment_preprocess_commerce_checkout_completion_message in Commerce Core 8.2

Implements hook_preprocess_commerce_checkout_completion_message().

File

modules/payment/commerce_payment.module, line 129
Provides payment functionality.

Code

function commerce_payment_preprocess_commerce_checkout_completion_message(&$variables) {

  /** @var Drupal\commerce_order\Entity\OrderInterface $order */
  $order = $variables['order_entity'];
  if ($order
    ->get('payment_gateway')
    ->isEmpty()) {
    return;
  }

  /** @var \Drupal\commerce_payment\Entity\PaymentGatewayInterface $payment_gateway */
  $payment_gateway = $order
    ->get('payment_gateway')->entity;

  /** @var \Drupal\commerce_payment\Plugin\Commerce\PaymentGateway\HasPaymentInstructionsInterface $payment_gateway_plugin */
  $payment_gateway_plugin = $payment_gateway
    ->getPlugin();
  if ($payment_gateway_plugin instanceof HasPaymentInstructionsInterface) {
    $payment_storage = \Drupal::entityTypeManager()
      ->getStorage('commerce_payment');
    $payments = $payment_storage
      ->loadMultipleByOrder($order);
    $payments = array_filter($payments, function ($payment) use ($payment_gateway) {
      return $payment
        ->getPaymentGatewayId() == $payment_gateway
        ->id();
    });
    $payment = reset($payments);
    if ($payment) {
      $variables['payment_instructions'] = $payment_gateway_plugin
        ->buildPaymentInstructions($payment);
    }
  }
}