Spaces:
No application file
No application file
File size: 1,656 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
<?php
namespace Mautic\EmailBundle\Helper;
use Mautic\CoreBundle\Factory\MauticFactory;
use Mautic\LeadBundle\Entity\Lead;
class PointEventHelper
{
public static function validateEmail($eventDetails, $action): bool
{
if (null === $eventDetails) {
return false;
}
$emailId = $eventDetails->getId();
if (isset($action['properties']['emails'])) {
$limitToEmails = $action['properties']['emails'];
}
if (!empty($limitToEmails) && !in_array($emailId, $limitToEmails)) {
// no points change
return false;
}
return true;
}
public static function sendEmail($event, Lead $lead, MauticFactory $factory): bool
{
$properties = $event['properties'];
$emailId = (int) $properties['email'];
/** @var \Mautic\EmailBundle\Model\EmailModel $model */
$model = $factory->getModel('email');
$email = $model->getEntity($emailId);
// make sure the email still exists and is published
if (null != $email && $email->isPublished()) {
$leadFields = $lead->getFields();
if (isset($leadFields['core']['email']['value']) && $leadFields['core']['email']['value']) {
$leadCredentials = $lead->getProfileFields();
$leadCredentials['id'] = $lead->getId();
$options = ['source' => ['trigger', $event['id']]];
$emailSent = $model->sendEmail($email, $leadCredentials, $options);
return is_array($emailSent) ? false : true;
}
}
return false;
}
}
|