Переопределить содержимое электронных писем cakePHP3
Я создал приложение cakePHP3 и ищу советы по поводу следующей ситуации. Конфигурация электронной почты настраивается следующим образом, чтобы отправлять почту всякий раз, когда создается новый заказ.
public function orderCreated($order, array $attachments = [])
{
$email = $this
->locale($order->customer->language)
->to($order->customer->email)
->from(Configure::read('Webshop.email'), Configure::read('Webshop.name'))
->subject(__('Confirmation of your order {0}', $order->nr))
->template('orders' . DS . 'order_created')
->set(['order' => $order])
->attachments($attachments);
return $email;
}
Прекрасно работал целую вечность, но я хотел бы добавить некоторые новые функциональные возможности для этой конкретной электронной почты (и других). Администраторы должны иметь возможность переопределять содержимое шаблона orders / order_created.ctp, если они этого хотят, чтобы они могли сами определять содержимое этого электронного письма. Таким образом, они не должны полагаться на тот же контент в шаблоне order_created.ctp, который я предоставил.
Создание пользовательского интерфейса для сохранения своих электронных писем не является проблемой. Но проблема, которую я действительно не знаю, как я мог предоставить переопределенный контент почтовой программе cakePHP3. Я пробовал настройку
->template(false)
->message($new_content)
Но это не помогло. Сообщение не доходит до почтового ящика, потому что тело пусто.
Благодарю.
1 ответ
Я думаю, я бы пошел с чем-то вроде этого:
->template('orders' . DS . 'order_created_custom')
->set(['order' => $order, 'content' => $new_content])
А потом в новом order_created_custom.ctp
вы бы вывели $content
, Это дает вам возможность сделать некоторые замены текста на основе содержимого $order
а также, возможно, наличие таких вещей, как стандартное приветствие или подпись.