custom/plugins/CoeEmailSendCopy/src/Core/Content/MailTemplate/Subscriber/MailSendSubscriber.php line 53

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace CoeEmailSendCopy\Core\Content\MailTemplate\Subscriber;
  3. use Shopware\Core\Content\MailTemplate\Service\Event\MailBeforeSentEvent;
  4. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepositoryInterface;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Shopware\Core\System\SystemConfig\SystemConfigService;
  7. class MailSendSubscriber implements EventSubscriberInterface
  8. {
  9.     /**
  10.      * @var EntityRepositoryInterface
  11.      */
  12.     private $mailTemplateRepository;
  13.     /**
  14.      * @var SystemConfigService
  15.      */
  16.     private $systemConfigService;
  17.     /**
  18.      * MailSendSubscriber constructor.
  19.      * @param EntityRepositoryInterface $mailTemplaterepository
  20.      * @param SystemConfigService $systemConfigService
  21.      */
  22.     public function __construct(
  23.         EntityRepositoryInterface $mailTemplaterepository,
  24.         SystemConfigService $systemConfigService
  25.     ) {
  26.         $this->mailTemplateRepository $mailTemplaterepository;
  27.         $this->systemConfigService $systemConfigService;
  28.     }
  29.     /**
  30.      * @return array
  31.      * @author Jeffry Block <jeffry.block@codeenterprise.de>
  32.      */
  33.     public static function getSubscribedEvents(): array
  34.     {
  35.         return [
  36.             MailBeforeSentEvent::class => 'beforeMailSent'
  37.         ];
  38.     }
  39.     /**
  40.      * Check if CC or BCC has been provided in $data and add them respectively
  41.      * @param MailBeforeSentEvent $event
  42.      * @author Jeffry Block <jeffry.block@codeenterprise.de>
  43.      */
  44.     public function beforeMailSent(MailBeforeSentEvent $event)
  45.     {
  46.         $data $event->getData();
  47.         if(isset($data["bcc"]) && is_array($data["bcc"])){
  48.             foreach($data["bcc"] as $recipient => $name){
  49.                 $event->getMessage()->addBcc($recipient,$name);
  50.             }
  51.         }
  52.         if(isset($data["cc"]) && is_array($data["cc"])){
  53.             foreach($data["cc"] as $recipient => $name){
  54.                 $event->getMessage()->addCc($recipient,$name);
  55.             }
  56.         }
  57.     }
  58. }