2017-09-11 2 views
0

Sitzungswert funktioniert nicht in Blöcken, wenn der FPC-Cache aktiviert ist. So wird der Sitzungswert in Cache-aktivierten Blöcken behandelt.Ich habe die Kundensitzungs-ID wie folgt hinzugefügt Cache in einem Block.Sitzungswert funktioniert nicht, wenn der FPC-Cache aktiviert ist

public function getCacheKeyInfo() { 
    $info = parent::getCacheKeyInfo(); 
    $info['current_product_id'] = Mage::registry('current_product')->getId(); 
    $info['customer_id'] = Mage::getSingleton('customer/session')->getCustomerId(); 
    return $info; 
} 
+0

Welche Version Magento und welches Modul verwenden Sie für PFC? – Ronn0

+0

Magento 1.4 und implementiert die FPC in benutzerdefinierten Modul – user3040610

+0

Nun, vielleicht ist es in der benutzerdefinierten Modul? Aber dafür brauchen wir mehr. – Ronn0

Antwort

0

In diesem Fall benötigen Sie einen benutzerdefinierten Wert aus der getCacheKey Methode zurückzukehren, zum Beispiel:

public function getCacheKey(){ 
    if (Mage::getSingleton('customer/session')->getCustomerId() == '') { 
     return 'custom_cache_key_not_loggedin'; 
    } else { 
     return 'custom_cache_key_' . Mage::getSingleton('customer/session')->getCustomerId(); 
    } 
} 

Aber bitte denken Sie daran, dies wird keine Auswirkungen hat, wenn Ihre FPC (FULL-Seiten-Cache) aktiviert. Weil FULL-Seiten-Cache nicht das ist, was Sie mit Ihrer Frage verlangen.

Was soll ich tun, wenn ich wo bin?

Was ich in Ihrer Situation bevorzugen würde, ist das Überspringen der Zwischenspeicherung bestimmter (Benutzer) Blöcke, wenn ein Benutzer angemeldet ist.

+0

Vielen Dank für Ihre Antwort, aber ich muss die Kunden-Sitzung zu bekommen ID in einer anderen Funktion getOptionHML() – user3040610

+0

Nun, wenn Sie es richtig lesen, werden Sie sehen, dass Ihre Art der Implementierung von Cachinig nicht richtig ist. Es spielt also keine Rolle, wofür Sie den Wert benötigen. Es geht darum, die Art des Cachings und die dahinter liegende Logik zu verbessern. – Ronn0

Verwandte Themen