Сценарий: выбор шаблона электронной почты из базы данных и просмотр списка получателей, персонализация электронной почты для каждого из них.
Мой шаблон электронной почты возвращается как вложенный объект. Это может выглядеть примерно так:
object(stdClass) {
["title"] => "Event Notification"
["sender"] => "[email protected]"
["content"] => object(stdClass) {
["salutation"] => "Dear %%firstname%%,"
["body"] => "Lorem ipsum %%recipient_email%% etc etc..."
}
}
Затем я прохожу через получателей, передавая этот объект электронной почты функции персонализации():
foreach( $recipients as $recipient ){
$email_body = personalise( $email, $recipient );
//send_email();
}
Проблема, конечно, в том, что мне нужно передать объект электронной почты по ссылке, чтобы он заменил теги персонализации, но если я это сделаю, исходный объект будет изменен и больше не будет содержать теги персонализации.
Как я понимаю, клон мне не поможет, потому что он создаст только мелкую копию: объект содержимого внутри объекта электронной почты не будет клонирован.
Я читал о том, чтобы обойти это с помощью unserialize (serialize ($ obj)), но все, что я прочитал, говорит, что это большой успех.
Итак, два, наконец, доберутся до двух моих вопросов:
- Является unserialize (serialize ($ obj)) разумное решение здесь?
- Или я все это делаю неправильно? Есть ли другой способ, чтобы я может генерировать персонализированные копии этого объекта электронной почты?