You are here

public function FilterPaymentGatewaysSubscriber::onFilter in Commerce Core 8.2

Filters out payment gateways listed in an order's data attribute.

Parameters

\Drupal\commerce_payment\Event\FilterPaymentGatewaysEvent $event: The event.

File

modules/payment/tests/modules/commerce_payment_test/src/EventSubscriber/FilterPaymentGatewaysSubscriber.php, line 26

Class

FilterPaymentGatewaysSubscriber

Namespace

Drupal\commerce_payment_test\EventSubscriber

Code

public function onFilter(FilterPaymentGatewaysEvent $event) {
  $payment_gateways = $event
    ->getPaymentGateways();
  $excluded_gateways = $event
    ->getOrder()
    ->getData('excluded_gateways', []);
  foreach ($payment_gateways as $payment_gateway_id => $payment_gateway) {
    if (in_array($payment_gateway
      ->id(), $excluded_gateways)) {
      unset($payment_gateways[$payment_gateway_id]);
    }
  }
  $event
    ->setPaymentGateways($payment_gateways);
}