app/Plugin/EccubePaymentLite4/EventListener/EventSubscriber/Front/Shopping/SaveRegularOrderAtShoppingComplete.php line 39

Open in your IDE?
  1. <?php
  2. namespace Plugin\EccubePaymentLite4\EventListener\EventSubscriber\Front\Shopping;
  3. use Eccube\Entity\Order;
  4. use Eccube\Entity\Shipping;
  5. use Eccube\Event\EccubeEvents;
  6. use Eccube\Event\EventArgs;
  7. use Plugin\EccubePaymentLite4\Service\IsRegularPaymentService;
  8. use Plugin\EccubePaymentLite4\Service\SaveRegularOrderService;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. class SaveRegularOrderAtShoppingComplete implements EventSubscriberInterface
  11. {
  12.     /**
  13.      * @var SaveRegularOrderService
  14.      */
  15.     private $saveRegularOrderService;
  16.     /**
  17.      * @var IsRegularPaymentService
  18.      */
  19.     private $isRegularPaymentService;
  20.     public function __construct(
  21.         SaveRegularOrderService $saveRegularOrderService,
  22.         IsRegularPaymentService $isRegularPaymentService
  23.     ) {
  24.         $this->saveRegularOrderService $saveRegularOrderService;
  25.         $this->isRegularPaymentService $isRegularPaymentService;
  26.     }
  27.     public static function getSubscribedEvents()
  28.     {
  29.         return [
  30.             EccubeEvents::FRONT_SHOPPING_COMPLETE_INITIALIZE => 'index',
  31.         ];
  32.     }
  33.     public function index(EventArgs $eventArgs)
  34.     {
  35.         /** @var Order $Order */
  36.         $Order $eventArgs->getArgument('Order');
  37.         /** @var Shipping $Shipping */
  38.         $Shipping $Order->getShippings()->first();
  39.         if ($Shipping->getDelivery()->getSaleType()->getName() !== '定期商品') {
  40.             return;
  41.         }
  42.         if (!$this->isRegularPaymentService->isRegularPayment($Order)) {
  43.             return;
  44.         }
  45.         $this->saveRegularOrderService->save($Order);
  46.     }
  47. }