Có cách nào để thêm vòng lặp foreach trong mẫu email không?


10

Tôi đang cố gắng kích hoạt thư cho khách hàng sau khi họ đặt hàng. Email này sẽ mang tất cả các sản phẩm bán chéo của các sản phẩm được đặt hàng.

Tôi đã sử dụng các liên kết sau đây làm tài liệu tham khảo:

gửi email bằng cách sử dụng trình quan sát sự kiện

Mẫu email giao dịch nâng cao

Tất cả đều hoạt động tốt.

Nhưng bây giờ nghi ngờ của tôi là, liệu tôi có thể sử dụng vòng lặp foreach bên trong tệp html được đặt trong thư mục miền địa phương không?

Để tôi có thể lặp lại và in tất cả thông tin sản phẩm trong mẫu thư. Có ai giúp được không?

Câu trả lời:


21

Tôi nghĩ rằng không thể trực tiếp thực hiện vòng lặp foreach trong email, nhưng những gì bạn có thể làm là bao gồm một khối sẽ thực hiện vòng lặp trong một mẫu thông thường.

Trong email của bạn thêm một cái gì đó như sau.

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

Sau đó, trong mẫu của bạn thêm sau đây.

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

Để biết thêm thông tin tôi đã theo dõi blog này


Tôi thực sự đã cố gắng này. sẽ chấp nhận điều này trong 2 phút
Shathish

Chúng ta có phải thêm khối này vào bên trong mẫu email không? Và nó sẽ hiểu items=$itemschứ? Như $itemslà biến php.
Akshay Taru

Xin chào, tôi đã cố gắng ở trên không làm việc cho tôi. Mọi góp ý
Akshay Taru

0

Trên thực tế bạn có thể sử dụng một vòng lặp for trong email. Tôi đã thử nó trên phiên bản 2.3.3. Đây là vị trí mã để kiểm tra. Đây là cách nó trông giống như trong mẫu:

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

Thông tin vận chuyển:

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

Qua một bên. Trong 2.3.4, mã đã được cấu trúc lại , nhưng tôi tin rằng nó vẫn hoạt động vì nó không bị xóa. Xin nhớ rằng Magento đã loại bỏ khả năng gọi các chức năng trên các đối tượng kể từ phiên bản này, do đó order->getItems()chức năng của bạn có thể không hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.