Я сделал плагин для управления некоторыми специфическими токенами. Хорошо работает, когда я отправляю тестовое электронное письмо , но когда я отправляю электронное письмо в сегмент, у меня возникает проблема.
Вот упрощенная версия моего EventListener .
В этом примере я хочу заменить токен {testref}
на указанное c поле клиента с именем reference
. Я знаю, что могу сделать это с {customerfield=reference}
, но это только для примера (в реальном плагине я использую некоторые поля ввода для генерации специфических ссылок из пользовательских токенов - и нет, я не могу сделать то, что в редакторе электронной почты) .
<?php
namespace MauticPlugin\MyBundle\EventListener;
use Mautic\CoreBundle\EventListener\CommonSubscriber;
use Mautic\EmailBundle\EmailEvents;
use Mautic\EmailBundle\Event\EmailBuilderEvent;
use Mautic\EmailBundle\Event\EmailSendEvent;
/**
* Class EmailSubscriber
*/
class EmailSubscriber extends CommonSubscriber
{
/**
* @return array
*/
static public function getSubscribedEvents()
{
return array(
EmailEvents::EMAIL_ON_SEND => array('onEmailSend', 0),
);
}
/**
* @param EmailSendEvent $event
*/
public function onEmailSend(EmailSendEvent $event)
{
$lead = $event->getLead();
$lead_reference = ($lead !== null) ? $lead['reference'] : 'unknown_reference';
$debug = 'Lead Reference : '.$lead_reference;
file_put_contents('mylog.log', $debug . PHP_EOL, FILE_APPEND);
$contentText = $event->getPlainText();
$content = $event->getContent();
$content = str_replace('{testref}', $lead_reference, $content);
$event->setContent($content);
$event->setPlainText($contentText);
}
}
Проблема в том, что, скажем, я хочу отправить электронное письмо в сегмент с 3 лидами. Я хочу, чтобы каждый участник получал электронное письмо со своим собственным reference
:
Hi A, your Reference is A
Hi B, your Reference is B
Hi C, your Reference is C
Но вместо вышеупомянутого каждый клиент получает электронное письмо с reference
обработанного первого запроса :
Hi A, your Reference is A
Hi B, your Reference is A
Hi C, your Reference is A
Когда я вывожу это reference
в журнале, я вижу, что l oop в порядке (2 раза, я не знаю почему, и сейчас мне все равно, ахах) :
Lead Reference : A
Lead Reference : A
Lead Reference : B
Lead Reference : B
Lead Reference : C
Lead Reference : C
Итак, я знаю, что код получает правильные данные ... Но я не понимаю, почему все видят данные первого обработанного только свинец.
PS: когда я говорю всем, я имею в виду все мои тестовые электронные письма в тестовом сегменте ... Не в производстве c.
Любая помощь приветствуется, спасибо!