2017-09-11 3 views
0

FPCキャッシュが有効なときにセッション値がブロックで機能しない。キャッシュ有効ブロックのセッション値を処理する方法。以下のように顧客セッションIDを追加しました。ブロック内のキャッシュ。FPCキャッシュを有効にしたときにセッション値が機能しない

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(); 
    } 
} 

しかし、あなたのFPC(FULLページキャッシュあれば、これは何の効果もありませんのでご注意ください:あなたは、たとえば、getCacheKey方法からカスタム値を返す必要があります。この場合

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

どのバージョンのMagentoとPFC用にどのモジュールを使用していますか? – Ronn0

+0

magento 1.4とカスタムモジュールでFPCを実装 – user3040610

+0

まあ、おそらくカスタムモジュールにありますか?しかし、それ以上のことが必要です。 – Ronn0

答えて

0

) 有効になっています。 FULLページキャッシュはあなたの質問であなたが求めているものではないからです。

どこにいるのですか?

私があなたの状況で好むのは、ユーザーがログインしているときに特定の(ユーザー)ブロックをスキップすることです。

+0

あなたの答えをありがとうが、私は顧客セッションを取得する必要がありますid他の関数のgetOptionHML() – user3040610

+0

あなたが正しい方法でそれを読めば、cachinigの実装方法が正しくないことがわかります。あなたが価値を必要とするかどうかは関係ありません。それはあなたのキャッシング方法とその背後にあるロジックを改善するための問題です。 – Ronn0

関連する問題