custom/plugins/BilliePaymentSW6/src/Components/Account/Subscriber/AccountSubscriber.php line 40

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /*
  4.  * Copyright (c) Billie GmbH
  5.  *
  6.  * For the full copyright and license information, please view the LICENSE
  7.  * file that was distributed with this source code.
  8.  */
  9. namespace Billie\BilliePayment\Components\Account\Subscriber;
  10. use Billie\BilliePayment\Components\PaymentMethod\Util\MethodHelper;
  11. use Shopware\Core\Checkout\Payment\PaymentMethodEntity;
  12. use Shopware\Storefront\Event\RouteRequest\HandlePaymentMethodRouteRequestEvent;
  13. use Shopware\Storefront\Page\Account\Order\AccountEditOrderPageLoadedEvent;
  14. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  15. class AccountSubscriber implements EventSubscriberInterface
  16. {
  17.     public static function getSubscribedEvents(): array
  18.     {
  19.         return [
  20.             HandlePaymentMethodRouteRequestEvent::class => 'onHandlePaymentMethodRouteRequest',
  21.             AccountEditOrderPageLoadedEvent::class => 'onAccountEditOrderPageLoaded',
  22.         ];
  23.     }
  24.     public function onHandlePaymentMethodRouteRequest(HandlePaymentMethodRouteRequestEvent $event): void
  25.     {
  26.         if ($event->getStorefrontRequest()->request->has('billie_payment')) {
  27.             $event->getStoreApiRequest()->request->set(
  28.                 'billie_payment',
  29.                 $event->getStorefrontRequest()->request->get('billie_payment')
  30.             );
  31.         }
  32.     }
  33.     public function onAccountEditOrderPageLoaded(AccountEditOrderPageLoadedEvent $event): void
  34.     {
  35.         $page $event->getPage();
  36.         $paymentMethods $page->getPaymentMethods()->filter(static fn (PaymentMethodEntity $paymentMethod): bool => !MethodHelper::isBilliePayment($paymentMethod));
  37.         $page->setPaymentMethods($paymentMethods);
  38.     }
  39. }