文章彙整

Magento 2 信件樣板詳解(二) -在 Template 內插入 block 應用

By Astral Web 1 month agoNo Comments
首頁  /  Magento  /  Magento安裝設定  /  Magento 2 信件樣板詳解(二) -在 Template 內插入 block 應用

Template 是 html 檔 無法執行如迴圈或是判斷式之類的程式邏輯,若有這方面的需求就必須要用到插入 block 的技巧,所幸原生程式裡就有 block 的應用可以讓我們參考。

 

參考檔案 : vendor/magento/module-sales/view/frontend/email/shipment_new.html

可以看到內容有一段

 

{{block class=’Magento\\Framework\\View\\Element\\Template’ area=’frontend’ template=’Magento_Sales::email/shipment/track.phtml’ shipment=$shipment order=$order}}

 

其中 class=’Magento\\Framework\\View\\Element\\Template’  的設定是沒作用的但卻不能省略,若有需要可以自訂 class 並 extends \Magento\Framework\View\Element\Template

 

template=’Magento_Sales::email/shipment/track.phtml’  

指定使用的檔案為:vendor\magento\module-sales\view\frontend\templates\email\shipment\track.phtml

 

shipment=$shipment 是指帶入變數 $shipment  變數名稱為 shipment

order=$order 一樣是帶入變數

 

接下來我們參考 Magento 的程式 自己來寫一個 Block

 

php pestle.phar generate_module AstralWeb EmailBlock 0.0.1

 

並建立一個 template 檔案 app/code/AstralWeb/EmailBlock/view/frontend/templates/email/template.phtml

 

<?php

   $_order = $block->getOrder();

   $items = $_order->getItems();

?>

<?php if ($_order) : ?>

   <table class=”shipment-track”>

       <thead>

           <tr>

               <th>Sku</th>

               <th>Name</th>

           </tr>

       </thead>

       <tbody>

           <?php foreach( $items as $item ){ ?>

           <tr>

               <td><?php echo $item->getSku(); ?>:</td>

               <td><?php echo $item->getName(); ?></td>

           </tr>

           <?php } ?>

       </tbody>

   </table>

<?php endif;

 

這 template 目的是將訂單內項目都列出來,可以看到這 template 會需要用到 order 這變數。

 

block 呼叫的方式為

 

{{block class=’Magento\\Framework\\View\\Element\\Template’ area=’frontend’ template=‘AstralWeb_EmailBlock::email/template.phtml‘ order=$order}}

將上述那段 block 直接放入 order_new.html 內(請參考 Magento 2 信件樣板詳解(一)覆寫樣版),接下來就直接寄信看看。

 

可以看到訂單內容這樣就是完成了。

 

block 的設計可以補足 template 不能使用邏輯判斷的缺點,也可以重複使用(雖然不太容易有這樣的需求),總而言之算是相當方便的功能。

以上是本篇對如何在Magento 2 設定電子報的介紹,如果有您有更多疑問可以詢問我們,未來會撰寫更多電商網站相關文章,您想知道什麼嗎?歡迎在下方留言給我們。或追蹤我們的粉絲專頁,就不錯過最新文章喔!

想學習更多Magento設定嗎?請見:Magento教學導覽

以上內容由Astralweb 歐斯瑞編寫製作

 000

推薦文章

Category:
  Magento安裝設定

留下回應

你的電子郵件地址不會被公開.

取得獨家電子商務祕技

建立更好的策略靈感

跟上全球的網路趨勢

絕佳的電商解決方案

電子商務戰略全指南

每月發送電商戰略指南,只要填寫E-mail即可訂閱!

請到您的信箱確認,即可完成訂閱。