Block im Template anzeigen
Hierfür benötigt man als erstes ein Template-File, dieses erstellt man sich einfach in seinem module unter
<VendorName> > <ModuleName> > view > frontend > templates > email > <tempalte.phtml>
In unserem Fall haben wir die Fronius Kundennummer hinzugefügt:
In diesem Template kann man zu Testzwecken erstmal ein:
<?php echo "Hello, I'm a PHP template";
?>
einfügen. (Später muss man hier dann auf die Variable zugreifen, welche bei uns wie folgt aussah:
<?php
$objm = \Magento\Framework\App\ObjectManager::getInstance();
$customerSession = $objm->get('Magento\Customer\Model\Session');
if($customerSession->isLoggedIn())
{
$froniusCustomerNumber = $customerSession->getCustomer()->getFroniuscustomernumber();
/*$customerRepository = $objm
->get('\Magento\Customer\Api\CustomerRepositoryInterface');
$customer = $customerRepository->getById(11);
$froniusCustomerNumber = $customer->getCustomAttribute('froniuscustomernumber');*/
/*$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerObj = $objectManager->create('Magento\Customer\Model\Customer')->getCollection();
foreach ($customerObj as $customerObjdata) {
$customermodel = $objectManager->create('Magento\Customer\Model\Customer');
$customerData = $customermodel->getDataModel();
$customerData->setId($customerObjdata->getData('entity_id'));
$customerData->setCustomAttribute('froniuscustomernumber', 132);
$customermodel->updateData($customerData);
$customerResource = $objectManager->create('\Magento\Customer\Model\ResourceModel\CustomerFactory')->create();
$customerResource->saveAttribute($customermodel, 'froniuscustomernumber');
}*/
if($froniusCustomerNumber == ""){
echo '-';
}else{
echo $froniusCustomerNumber;
}
}
?>
Als nächstes müssen wir nur noch im jeweiligen Email-Template unser .phtml anzeigen. Dies kann wie folt gelöst werden.
Als erstes müssen wir im Backend unter Marketing > Email Templates unser gewünschtes template auswählen oder ein neues erstellen. Hier fügen wir dann folgendes ein:
{{block class='Magento\\Framework\\View\\Element\\Template' area='frontend' template='<Vendor Name>_<Module Name>::email/template.phtml'}}
und schon sind wir fertig!
Natürlich ist noch viel mehr möglich auf das ich hier jetzt speziell nicht eingehe!