启用FPC缓存时,会话值不起作用

时间:2017-09-11 12:25:23

标签: magento magento-1.4

启用FPC缓存时,会话值无法在块中工作。如何处理缓存启用块中的会话值。我已添加客户会话ID,如下所示。如何从缓存中获取客户ID。

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

1 个答案:

答案 0 :(得分:0)

在这种情况下,您需要从getCacheKey方法返回自定义值,例如:

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页面缓存),这将不起作用。因为FULL页面缓存不是您要求的问题。

如果我在哪里,我该怎么办?

在您的情况下,我更喜欢在用户登录时跳过缓存特定(用户)块。