src/EventSubscriber/BulkOrderCompletedEmailEventSubscriber.php line 28
<?php
namespace App\EventSubscriber;
use App\Event\BulkOrderCompletedEmailEvent;
use App\Event\SendEmailEvent;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class BulkOrderCompletedEmailEventSubscriber implements EventSubscriberInterface
{
public function __construct(private EventDispatcherInterface $eventDispatcher,
private string $fromEmail, private string $fromName)
{
}
public static function getSubscribedEvents(): array
{
return [
BulkOrderCompletedEmailEvent::NAME => [
['handleEmailSend', 10]
]
];
}
public function handleEmailSend(BulkOrderCompletedEmailEvent $event): void
{
$customer = $event->getCustomer();
$bulkOrder = $event->getBulkOrder();
// $date = new \DateTime('now');
// $yesterDay = $date->sub(new \DateInterval('P1D'));
// $yesterDay = $yesterDay->format('d-m-Y');
$toEmails = [];
foreach($customer->getCompany()->getContacts() as $contact)
{
if($contact->isEmailNotificationEnabled())
{
$toEmails[] = $contact->getEmail();
}
}
dump($toEmails);
dump('coming here');
if(!empty($toEmails)) {
$emailParameters = [
'from' => [
'email' => $this->fromEmail,
'name' => $this->fromName
],
'to' => [
'email' => $toEmails,
],
'subject' => 'Bulk Order Details',
'template' => 'email/bulk_order_completed.html.twig',
'parameters' => [
'customer' => $customer,
'data' => $event->getData()
],
'attachment' => $bulkOrder->getOutFile()
];
$emailEvent = new SendEmailEvent($emailParameters);
$this->eventDispatcher->dispatch($emailEvent, SendEmailEvent::NAME);
}
}
}