<?php
namespace App\EventListener\DataObject;
use App\Helper as AppHelper;
use Exception;
use Pimcore\Event\DataObjectEvents;
use Pimcore\Event\Model\DataObjectEvent;
use Pimcore\Mail;
use Pimcore\Model\DataObject\Payment;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class PaymentEventListener implements EventSubscriberInterface
{
/**
* @inheritDoc
*/
public static function getSubscribedEvents()
{
return [
DataObjectEvents::PRE_ADD => 'sendMail'
];
}
/**
*
* @param DataObjectEvent $event
*
* @return null
*
* @throws Exception
*/
public function sendMail(DataObjectEvent $event)
{
$payment = $event->getObject();
if (!$payment instanceof Payment) {
return;
}
if (!$payment->getPublished()) {
return;
}
$container = \Pimcore::getContainer();
$user = $payment->getUser();
$plan = $user->getPlan();
//todo:: move this logic out of the event listener.
try {
$mail = new Mail();
$mail->addTo($user->getEmail());
$mail->subject('Your ATUMobile.com Membership');
$mail->html($container->get('twig')->render('Email/after-payment.html.twig', ['plan' => $plan]));
$mail->send();
} catch (\Exception $ex) {
AppHelper\Log::log($ex, 'payment_success_mail');
}
}
}