app/Customize/EventListener/SendNaireAndSeaBurialMailSubscriber.php line 25

Open in your IDE?
  1. <?php
  2. namespace Customize\EventListener;
  3. use Customize\Service\MailService;
  4. use Eccube\Event\EccubeEvents;
  5. use Eccube\Event\EventArgs;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class SendNaireAndSeaBurialMailSubscriber implements EventSubscriberInterface
  8. {
  9.     public function __construct(
  10.         MailService $mailService
  11.     ) {
  12.         $this->mailService $mailService;
  13.     }
  14.     public static function getSubscribedEvents(): array
  15.     {
  16.         return [
  17.             EccubeEvents::FRONT_SHOPPING_COMPLETE_INITIALIZE => 'onAfterSendOrderMail',
  18.         ];
  19.     }
  20.     public function onAfterSendOrderMail(EventArgs $event)
  21.     {
  22.         $Order $event->getArgument("Order");
  23.         // 注文完了メールより後に送られるようにsleepを実行
  24.         sleep(10);
  25.         // $Orderに含まれる名入れ商品の数だけsendNaireMailを発火する
  26.         foreach ($Order->getOrderItems() as $orderItem) {
  27.             if ($orderItem->getNaire()) {
  28.                 $this->mailService->sendNaireMail($Order$orderItem);
  29.             }
  30.         }
  31.         $this->mailService->sendSeaBurialMail($Order);
  32.     }
  33. }