src/EventListener/PreOrderCreatedListener.php line 37
<?phpnamespace App\EventListener;use App\Service\MailerService;use ApiPlatform\Core\EventListener\EventPriorities;use App\Entity\PreOrder;use Doctrine\ORM\EntityManagerInterface;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpKernel\Event\ViewEvent;use Symfony\Component\HttpKernel\KernelEvents;use App\Service\TelegramApi;use Symfony\Component\Uid\Ulid;use Symfony\Component\Uid\NilUlid;class PreOrderCreatedListener implements EventSubscriberInterface{private $mailerService;private $telegram;private EntityManagerInterface $entityManager;public function __construct(MailerService $mailerService, EntityManagerInterface $entityManager, TelegramApi $telegram){$this->mailerService = $mailerService;$this->entityManager = $entityManager;$this->telegram = $telegram;}public static function getSubscribedEvents(){return [KernelEvents::VIEW => ['sendPreOrderEmail', EventPriorities::POST_WRITE],];}public function sendPreOrderEmail(ViewEvent $event){$pre_order = $event->getControllerResult();$method = $event->getRequest()->getMethod();if (!$pre_order instanceof PreOrder || Request::METHOD_POST !== $method) {return;}$newPreOrder = $this->entityManager->getRepository(PreOrder::class)->find($pre_order->getId());if($newPreOrder->getManager() == null){// $content = "Нове замовлення на сайті в якому не вказаний менеджер! <a href='https://admin-cabinet.kramar-shop.com/pre-orders/update/{$newPreOrder->getId()}'>Перейти</a>";// $this->telegram->sendMessage($content);}$ulid = new Ulid();$newPreOrder->setUlid($ulid);$this->entityManager->persist($newPreOrder);$this->entityManager->flush();$userEmail = $newPreOrder->getClient()->getEmail(); // Отримати email з вашого об'єкта користувача$subject = 'Felso замовлення #' . $pre_order->getId();$body = 'Вітаємо, замовлення успішно оформлено. Чекайте відповідь менеджера!';if(!empty($userEmail))$this->mailerService->sendRegistrationEmail($userEmail, $subject, $body);}}