Чи є спосіб додати цикл foreach в шаблон електронної пошти?


10

Я намагаюся викликати електронну пошту до клієнта після того, як він зробив замовлення. Цей електронний лист міститиме всю продукцію, яка продається на замовлення.

Я використовував наступні посилання в якості посилання:

надсилати електронне повідомлення за допомогою спостерігача за подіями

Розширені шаблони транзакційних електронних повідомлень

Все працює добре.

Але тепер я сумніваюся, чи зможу я використовувати цикл foreach всередині html-файлу, розміщеного всередині каталогу locale ?

Щоб я міг повторити та надрукувати всю інформацію про продукт у шаблоні пошти. Хтось може допомогти?

Відповіді:


21

Я думаю, що неможливо безпосередньо виконати цикл foreach в електронних листах, але те, що ви могли зробити, це включити блок, який буде робити цикл у звичайному шаблоні.

У свій електронний лист додайте щось подібне.

{{block type='core/template' area='frontend' template='email/template.phtml' items=$items}}

Потім у свій шаблон додайте наступне.

<?php foreach ($this->getItems() as $_item): ?>
    <p><?php echo $_item['name'] ?></p>
<?php endforeach; ?>

Для отримання додаткової інформації я перейшов до цього блогу


Так, я насправді намагався це зробити. прийму це через 2 хвилини
Шатіш,

Чи потрібно додати цей блок всередині шаблону електронної пошти? І це зрозуміє items=$items? Як $itemsі php змінна.
Акшай Тару

Привіт, я намагався вище не працювати для мене. Будь-які пропозиції
Акшай Тару

0

Насправді ви можете використовувати цикл для електронних листів. Я перевірив його на версії 2.3.3. Це місце для перевірки коду . Ось як це виглядає в шаблоні:

<ul>
  {{for item in data.items}}
     <li>Name: {{var item.name}}</li>
  {{/for}}
</ul>

Інформація про транспорт:

$this->transportBuilder->setTemplateVars(
[
 'items' => [
              ['name' => 'Product1'],
              ['name' => 'Product2']
            ]
...

Убік В 2.3.4 код був перероблений , але я вважаю , що по- , як і раніше повинен працювати , оскільки він не був видалений. Пам'ятайте, що Magento видалив можливість виклику функцій на об'єктах станом на цій версії, тому ваша order->getItems()функція може не працювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.