src/EventListener/PreOrderCreatedListener.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Service\MailerService;
  4. use ApiPlatform\Core\EventListener\EventPriorities;
  5. use App\Entity\PreOrder;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpKernel\Event\ViewEvent;
  10. use Symfony\Component\HttpKernel\KernelEvents;
  11. class PreOrderCreatedListener implements EventSubscriberInterface
  12. {
  13.     private $mailerService;
  14.     private EntityManagerInterface $entityManager;
  15.     public function __construct(MailerService $mailerServiceEntityManagerInterface $entityManager)
  16.     {
  17.         $this->mailerService $mailerService;
  18.         $this->entityManager $entityManager;
  19.     }
  20.     public static function getSubscribedEvents()
  21.     {
  22.         return [
  23.             KernelEvents::VIEW => ['sendPreOrderEmail'EventPriorities::POST_WRITE],
  24.         ];
  25.     }
  26.     public function sendPreOrderEmail(ViewEvent $event)
  27.     {
  28.         $pre_order $event->getControllerResult();
  29.         $method $event->getRequest()->getMethod();
  30.         if (!$pre_order instanceof PreOrder || Request::METHOD_POST !== $method) {
  31.             return;
  32.         }
  33.         $newPreOrder $this->entityManager->getRepository(PreOrder::class)->find($pre_order->getId());
  34.         // echo '<pre>';
  35.         // print_r($newPreOrder->getClient()->getEmail()); die;
  36.         // print_r($pre_order->getId()); die;
  37.         // file_put_contents('Emai.log', print_r($pre_order->getClient(), true) . "\n", FILE_APPEND);
  38.         // $userEmail = $newPreOrder->getClient()->getEmail(); // Отримати email з вашого об'єкта користувача
  39.         // $subject = 'KRAMAR LTD замовлення #' . $pre_order->getId();
  40.         // $body = 'Вітаємо, замовлення успішно оформлено. Чекайте відповідь менеджера ';
  41.         // $this->mailerService->sendRegistrationEmail($userEmail, $subject, $body);
  42.     }
  43. }