TransportBuilder.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Newsletter\Model\Queue;
  7. use Magento\Email\Model\AbstractTemplate;
  8. class TransportBuilder extends \Magento\Framework\Mail\Template\TransportBuilder
  9. {
  10. /**
  11. * Template data
  12. *
  13. * @var array
  14. */
  15. protected $templateData = [];
  16. /**
  17. * Set template data
  18. *
  19. * @param array $data
  20. * @return $this
  21. */
  22. public function setTemplateData($data)
  23. {
  24. $this->templateData = $data;
  25. return $this;
  26. }
  27. /**
  28. * @param AbstractTemplate $template
  29. * @return void
  30. */
  31. protected function setTemplateFilter(AbstractTemplate $template)
  32. {
  33. if (isset($this->templateData['template_filter'])) {
  34. $template->setTemplateFilter($this->templateData['template_filter']);
  35. }
  36. }
  37. /**
  38. * @inheritdoc
  39. */
  40. protected function prepareMessage()
  41. {
  42. /** @var AbstractTemplate $template */
  43. $template = $this->getTemplate()->setData($this->templateData);
  44. $this->setTemplateFilter($template);
  45. $this->message->setBodyHtml(
  46. $template->getProcessedTemplate($this->templateVars)
  47. )->setSubject(
  48. $template->getSubject()
  49. );
  50. return $this;
  51. }
  52. }