Komischer Titel, man möge mir verzeihen.
Hallo.
Folgendes Problem habe ich:
Ich habe eine Menübar im Header die unter anderem einen Button für Acc-Links enthält. Klickt man den Button öffnet sich ein Menü mit weiteren Buttons [Anmelden], (Hallo Gast. Noch kein Konto bei uns?) [Registrieren], [Mein Konto], [Warenkorb] usw.
Loggt sich ein User ein, werden die Buttons [Anmelden] und [Registrieren] und der Text (Hallo Gast ...) gegen den Text (Hallo 'Vorname') und den Button [Abmelden] getauscht.
Was ich mir dazu jetzt gebastelt habe funktioniert auch schon ganz gut - mit einem kleinen Schönheitsfehler:
[src=php]<?php if ($_SESSION['customer_id'] && CUSTOMER_GREETING == 1)
{
echo href_link(FILENAME_LOGOFF, '', 'SSL');
echo TITLE_LOGOFF;
}
else {
if (STORE_STATUS == '0')
{
echo href_link(FILENAME_LOGIN, '', 'SSL');
echo TITLE_LOGIN;
echo customer_greeting();
echo href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL');
echo TITLE_CREATE_ACCOUNT;
} }
?>[/src]
Meldet sich der User ab, tauchen die Buttons [Anmelden] und [Registrieren] korrekt wieder auf - der Text (Hallo Gast ...) hingegen erscheint als "TEXT_GREETING_GUEST".
Die Funktion dazu:
[src=php]function customer_greeting() {
138
139 if (isset($_SESSION['customer_id']) && $_SESSION['customer_first_name']) {
140 $greeting_string = sprintf(TEXT_GREETING_PERSONAL, output_string_protected($_SESSION['customer_first_name']), href_link(FILENAME_PRODUCTS_NEW));
141 } else {
142 $greeting_string = sprintf(TEXT_GREETING_GUEST, href_link(FILENAME_LOGIN, '', 'SSL'), href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'));
143 }
144
145 return $greeting_string;
146 }[/src]
Was muss ich ändern, damit auch während des Abmeldens erkannt wird, dass die Person sich abgemeldet hat und entsprechend der Text richtig umgesetzt wird?
Auf allen anderen Seiten funktioniert das super - nur eben nicht auf der "Sie haben sich erfolgreich abgemeldet"-Seite. Die springt offenbar genau zwischen zwei Zustände - der eine stimmt nicht mehr und der andere stimmt noch nicht. Kann das irgendwie umgangen werden?
Muss dazu wieder erwähnen, hab (immer noch) keine Ahnung von PHP.
Letzter Part steht so in der functions.php und der erste Teil - ja, von mir zusammengeschustert halt.
Danke für eure Zeit.
Hallo.
Folgendes Problem habe ich:
Ich habe eine Menübar im Header die unter anderem einen Button für Acc-Links enthält. Klickt man den Button öffnet sich ein Menü mit weiteren Buttons [Anmelden], (Hallo Gast. Noch kein Konto bei uns?) [Registrieren], [Mein Konto], [Warenkorb] usw.
Loggt sich ein User ein, werden die Buttons [Anmelden] und [Registrieren] und der Text (Hallo Gast ...) gegen den Text (Hallo 'Vorname') und den Button [Abmelden] getauscht.
Was ich mir dazu jetzt gebastelt habe funktioniert auch schon ganz gut - mit einem kleinen Schönheitsfehler:
[src=php]<?php if ($_SESSION['customer_id'] && CUSTOMER_GREETING == 1)
{
echo href_link(FILENAME_LOGOFF, '', 'SSL');
echo TITLE_LOGOFF;
}
else {
if (STORE_STATUS == '0')
{
echo href_link(FILENAME_LOGIN, '', 'SSL');
echo TITLE_LOGIN;
echo customer_greeting();
echo href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL');
echo TITLE_CREATE_ACCOUNT;
} }
?>[/src]
Meldet sich der User ab, tauchen die Buttons [Anmelden] und [Registrieren] korrekt wieder auf - der Text (Hallo Gast ...) hingegen erscheint als "TEXT_GREETING_GUEST".
Die Funktion dazu:
[src=php]function customer_greeting() {
138
139 if (isset($_SESSION['customer_id']) && $_SESSION['customer_first_name']) {
140 $greeting_string = sprintf(TEXT_GREETING_PERSONAL, output_string_protected($_SESSION['customer_first_name']), href_link(FILENAME_PRODUCTS_NEW));
141 } else {
142 $greeting_string = sprintf(TEXT_GREETING_GUEST, href_link(FILENAME_LOGIN, '', 'SSL'), href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'));
143 }
144
145 return $greeting_string;
146 }[/src]
Was muss ich ändern, damit auch während des Abmeldens erkannt wird, dass die Person sich abgemeldet hat und entsprechend der Text richtig umgesetzt wird?
Auf allen anderen Seiten funktioniert das super - nur eben nicht auf der "Sie haben sich erfolgreich abgemeldet"-Seite. Die springt offenbar genau zwischen zwei Zustände - der eine stimmt nicht mehr und der andere stimmt noch nicht. Kann das irgendwie umgangen werden?
Muss dazu wieder erwähnen, hab (immer noch) keine Ahnung von PHP.
Letzter Part steht so in der functions.php und der erste Teil - ja, von mir zusammengeschustert halt.
Danke für eure Zeit.
Zuletzt bearbeitet: