Template Check Loginstatus

Hallo,

wie checke ich z.B. per Template, ob ein User eingeloggt ist?

Ich frage in meinem Template

{if $sUserLoggedIn}
    test
{/if}

Per {debug} sehe ich, dass wenn ich eingeloggt bin, $sUserLoggedIn = true, solange ich mich auf einer Seite des Kundenkontos bewege. Wenn ich aber auf irgendeine andre Seite gehe, ist $sUserLoggedIn = false, trotzdem im Kopf weiterhin „Hi, UserXXX!“ angezeigt wird und ich mich auch ohne Probleme in den Kundenauccount durchklicken kann, ohne mich erneut einloggen zu müssen. Ich würde jedoch gern einen Link zur Bestellhistorie im Hautmenü einbinden, wenn ein User eingeloggt ist, aber so scheint es nicht zu gehen. Habt ihr eine Idee?

Shopware 5.5.10 / „Login Cookie“ ist im Backend eingeschaltet.

Auf der einen Seite wird eine einfache Anpassung der tpl-Files nicht ausreichen, da viele Seiten ja gecached werden wenn man den HTTP-Cache aktiv hat. Entsprechend wird auch der Inhalt der Variable gecached, da der komplette Inhalt der Seite aus dem Cache kommt und nicht neu berechnet wird. Dafür bräuchte man dann eine Variante die per Ajax die Daten nachlädt und per Javascript im Theme einbindet.

Der Bereich im Header geht am Cache vorbei und ist ein Action Widget - ähnliche Funktion, dass muss aber extra so implementiert werden. Ein einfaches if/else im Theme wird auf gecachten Seiten alos nicht funktionieren. Im Checkout und dem Kundenaccount schon, weil da die Seite nicht aus dem Cache kommt.

Das Thema kannst du aber hier im Forum suchen, wurde schon mehrfach behandelt.

1 Like

Ok. Dann  nehme ich die widgets/checkout/info.tpl und binde einen zusätzlichen Button in der Shop-Navigation ein, dort passt es vom Thema eh besser hin.