gpt4 book ai didi

php - Magento 客户/ session 不起作用

转载 作者:行者123 更新时间:2023-12-04 05:52:40 29 4
gpt4 key购买 nike

当前端的订单历史页面 (*/sales/order/history/) 只显示一条短消息时,这个问题首先被意识到:您没有下订单。

经过一番调试,发现问题出在这个函数上:

Mage::getSingleton('customer/session')

除了网站 id 之外,它不返回包含当前客户信息的 session 实体,这就是订单集合在对客户 id 进行过滤后返回空结果的原因。

Stack Overflow上实际上有一个帖子讨论了类似的问题:
Customer session is different in different parts of a Magento website
.但它没有给出很好的解释。

令人困惑的是,就我而言,该功能在某些部分运行良好,但在其他部分运行良好。例如,我插入
<?php echo var_export(Mage::getSingleton('customer/session')->getCustomerId(), true) ?>  

进入目录产品列表模板,登录后显示客户ID。但同一行在订单历史记录页面中返回 Null。

我在 app/code/core/Mage/Customer/Model/Session.php 中找到了这些代码
public function getCustomer()
{
...
$customer = Mage::getModel('customer/customer')
->setWebsiteId(Mage::app()->getStore()->getWebsiteId());
if ($this->getId()) {
$customer->load($this->getId());
}
$this->setCustomer($customer);
return $this->_customer;
}

设置网站 id 后,它会根据 $this->getId() 加载客户实体。

为什么客户 session 实体的“id”属性并不总是有效?有人可以分享他的知识吗?非常感谢。

最佳答案

在假设问题出在某个特定区域时,我会小心使用 Magento。在意识到需要重新开始之前,您可以进入一个非常深的兔子洞。

如果您认为问题出在 session getter 上是准确的,请尝试以下操作:

Mage::getSingleton('core/session', array('name' => 'frontend'));

但我也会继续寻找其他选择。听起来与很多人遇到的缓存问题相似。考虑在关闭所有缓存的情况下尝试相同的方法。整页缓存可以对变量值做意想不到的事情。

你在你的例子中回显了什么文件?在进一步提供帮助之前,我需要知道这一点。

关于php - Magento 客户/ session 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9891761/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com