vendor\uvdesk\core-framework\Workflow\Actions\Customer\MailCustomer.php line 41

Open in your IDE?
  1. <?php
  2. namespace Webkul\UVDesk\CoreFrameworkBundle\Workflow\Actions\Customer;
  3. use Webkul\UVDesk\CoreFrameworkBundle\Entity as CoreEntities;
  4. use Webkul\UVDesk\AutomationBundle\Workflow\FunctionalGroup;
  5. use Webkul\UVDesk\CoreFrameworkBundle\Entity\Ticket;
  6. use Symfony\Component\DependencyInjection\ContainerInterface;
  7. use Webkul\UVDesk\AutomationBundle\Workflow\Action as WorkflowAction;
  8. use Webkul\UVDesk\CoreFrameworkBundle\Entity\EmailTemplates;
  9. class MailCustomer extends WorkflowAction
  10. {
  11.     public static function getId()
  12.     {
  13.         return 'uvdesk.customer.mail_customer';
  14.     }
  15.     public static function getDescription()
  16.     {
  17.         return "Mail to customer";
  18.     }
  19.     public static function getFunctionalGroup()
  20.     {
  21.         return FunctionalGroup::CUSTOMER;
  22.     }
  23.     
  24.     public static function getOptions(ContainerInterface $container)
  25.     {
  26.         $entityManager $container->get('doctrine.orm.entity_manager');
  27.         return array_map(function ($emailTemplate) {
  28.             return [
  29.                 'id' => $emailTemplate->getId(),
  30.                 'name' => $emailTemplate->getName(),
  31.             ];
  32.         }, $entityManager->getRepository(EmailTemplates::class)->findAll());
  33.     }
  34.     public static function applyAction(ContainerInterface $container$entity$value null)
  35.     {
  36.         $entityManager $container->get('doctrine.orm.entity_manager');
  37.         switch (true) {
  38.             // Customer created
  39.             case $entity instanceof CoreEntities\User:
  40.                 $emailTemplate $entityManager->getRepository(EmailTemplates::class)->findOneById($value);
  41.                 if (empty($emailTemplate)) {
  42.                     // @TODO: Send default email template
  43.                     return;
  44.                 }
  45.                 $emailPlaceholders $container->get('email.service')->getEmailPlaceholderValues($entity'customer');
  46.                 $subject $container->get('email.service')->processEmailSubject($emailTemplate->getSubject(), $emailPlaceholders);
  47.                 $message $container->get('email.service')->processEmailContent($emailTemplate->getMessage(), $emailPlaceholders);
  48.                 
  49.                 $messageId $container->get('email.service')->sendMail($subject$message$entity->getEmail());
  50.                 break;
  51.             default:
  52.                 break;
  53.         }
  54.     }
  55. }