src/EventListener/DataObject/PaymentEventListener.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\EventListener\DataObject;
  3. use App\Helper as AppHelper;
  4. use Exception;
  5. use Pimcore\Event\DataObjectEvents;
  6. use Pimcore\Event\Model\DataObjectEvent;
  7. use Pimcore\Mail;
  8. use Pimcore\Model\DataObject\Payment;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. class PaymentEventListener implements EventSubscriberInterface
  11. {
  12.     /**
  13.      * @inheritDoc
  14.      */
  15.     public static function getSubscribedEvents()
  16.     {
  17.         return [
  18.             DataObjectEvents::PRE_ADD => 'sendMail'
  19.         ];
  20.     }
  21.     /**
  22.      *
  23.      * @param DataObjectEvent $event
  24.      *
  25.      * @return null
  26.      *
  27.      * @throws Exception
  28.      */
  29.     public function sendMail(DataObjectEvent $event)
  30.     {
  31.         $payment $event->getObject();
  32.         if (!$payment instanceof Payment) {
  33.             return;
  34.         }
  35.         if (!$payment->getPublished()) {
  36.             return;
  37.         }
  38.         $container \Pimcore::getContainer();
  39.         $user $payment->getUser();
  40.         $plan $user->getPlan();
  41.         //todo:: move this logic out of the event listener.
  42.         try {
  43.             $mail = new Mail();
  44.             $mail->addTo($user->getEmail());
  45.             $mail->subject('Your ATUMobile.com Membership');
  46.             $mail->html($container->get('twig')->render('Email/after-payment.html.twig', ['plan' => $plan]));
  47.             $mail->send();
  48.         } catch (\Exception $ex) {
  49.             AppHelper\Log::log($ex'payment_success_mail');
  50.         }
  51.     }
  52. }