Hallo,
weiß jemand wie ich in der Bestellübersicht im Profil auf die Freitextfelder von s_order_attributes im Template (order_item_details.tpl) zugreifen kann. In der Variable $offerPosition sind die Attribute zu der Bestellung nicht drinnen.
Wo und was muss angepasst werden, sodass man diese Attribute bekommt?
Vielen Dank schon mal!
Es gibt unter order_item_details.tpl eine foreach-Schleife, wo die Positionen alle durchlaufen werden, um die übersicht im aufgeklappten Modus anzuzeigen.
{foreach $offerPosition.details as $article}
Hiernach kannst du einfach über z.B. {$article.attr1} auf die Attribute zugreiffen.
Wenn du schon früher auf die Attribute Zugriff erhalten möchtest, musst du dich über die $offerPosition.details..article hangeln, wobei x für die jeweilige Position steht…
Danke, aber ich meine nicht die Attribute vom Artikel, sonder die Attribute von der Bestellung… also von s_order_attributes das Freitextfeld attribute1.
Oh sry da habe ich mich verlesen. Die Attribute der Bestellung an sich scheinen standardmäßig nicht mitgeliefert zu werden, da müsstest du dich entsprechend hinter die Funktion des Aufrufs hängen und die Attribute manuell nachladen (oder mal schauen ob es evtl. schon ein Plugin dazu gibt).
Hier eine grobe Übersicht wie das aussehen könnte:
public static function getSubscribedEvents()
{
return [
'Enlight_Controller_Action_PostDispatch_Frontend_Account' => 'setAttrFields',
];
}
public function setAttrFields(\Enlight_Event_EventArgs $arguments) {
$controller = $arguments->getSubject();
$view = $controller->View();
$OrderArr = $view->getAssign('sOpenOrders');
// Wichtig, das '&' nicht vergessen
foreach($OrderArr as &$order) {
// Hier die benötigten Felder ermitteln und befüllen
}
// Hier auch die Möglichkeit deine tpls einzubinden und die Frontend-Änderungen im Plugin umzusetzen
$view->addTemplateDir( __DIR__. '/Views');
// Und zurück ans Frontend übergeben inkl. der neuen Felder
$view->assign('sOpenOrders', $OrderArr);
}
Super, danke! werde ich ausprobieren!