Magento 客户/会话不工作

2023-12-19

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

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

Mage::getSingleton('customer/session')

它不会返回包含除网站 ID 之外的当前客户信息的会话实体,这就是订单集合在筛选客户 ID 后返回空结果的原因。

Stack Overflow 上实际上有一篇文章讨论了类似的问题:Magento 网站不同部分的客户会话是不同的 https://stackoverflow.com/questions/4718659/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() 加载客户实体。

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


当假设问题出在某个特定区域时,我会谨慎对待 Magento。在意识到需要从头开始之前,您可能会陷入一个相当深的兔子洞。

如果您准确地认为问题出在会话 getter 上,请尝试以下操作:

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

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

您在示例中回显哪个文件?在提供进一步帮助之前我需要知道这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Magento 客户/会话不工作 的相关文章

  • 使用表单传递数组和用户输入

    我在处理传递数组的表单时遇到困难 我在名为 product 的数组中包含了 5 个变量 a b c d e 然后将其传递到另一个框架使用表单以及需要用户输入值的输入 所以会同时传递一个数组和一个输入 那么我应该使用 post 还是 get
  • 在浏览器中加载虚拟目录名时,AcquireRequestState中的Session为空,但加载Default.aspx时,Session不为空

    我有一个 ASP NET 4 0 WebForms 应用程序 我需要访问HttpContext Current Session并在中设置一个值AcquireRequestStateGlobal asax 中的事件 或其之后的事件 我发现了一
  • Swift上传文件到PHP服务器

    因此 我将文件从 swift 上传到 PHP 服务器 POST 请求按预期到达 带有标头和所有内容 但我无法从中获取任何内容 FILES 它只是一个空数组 我显然在 Swift 方面做错了什么 这是我的代码 func testUpload
  • 在 JavaScript 中获取当前会话值?

    我有一个场景 我在浏览器中打开 Web 应用程序 但在两个单独的选项卡中 在一个选项卡中 我从应用程序注销 因此所有会话值都变为空 在另一个选项卡中 我单击了网络应用程序中的锚标记 在锚标记的 jquery on click 事件中 我检查
  • ios-使用 firebase 发送通知

    我正在尝试创建带有通知的应用程序 通知必须从 php 文件发送到 firebase 然后发送到设备 起初 我尝试使用 firebase 控制台发送 效果完美 但是当我尝试使用 php 发送通知时 我遇到了问题 显示已成功发送 但我没有收到任
  • 有没有办法在 PHP 中进行 100% 面向对象的编程?

    我想 可以在单独的类中调用函数 我在 PHP 中称之为面向对象编程 但一开始总有一个index php什么的 它调用或者实例化另一个类 有没有办法让一个类像java那样进行自调用 public static void main String
  • AWS SNS 参数电话号码无效

    我正在尝试学习 aws sns 服务从我的网络应用程序发送短信 我正在本地主机上工作 params array credentials gt array key gt iam key secret gt iam secret region
  • 用于提取 FDF 数据的 PHP 正则表达式代码

    我正在尝试使用 PHP 和正则表达式解析 FDF 文件 但我就是无法理解正则表达式 我一直在解析文件以生成数组 FDF 1 2 1 0 obj lt lt FDF lt lt Fields lt lt V email protected c
  • 使用ffmpeg转换文件时PHP内部服务器错误500

    我有一个 PHP 脚本 在我的服务器中通过 cron 作业调用它来运行上传的视频转换 它对于某些视频效果很好 但是当视频稍大一点 例如 21MB 时 我会得到一个500 Internal Server Error并且没有其他输出 我认为这个
  • 为什么我的 PHP 字符串比较失败?

    我有以下代码片段 if summary CFD funding Interest Paid summary Commissions summary Closing trades print summary date reference de
  • php洗一副牌

    我想使用 php 创建随机桥手的集合 我认为我可以将有序的卡片包编码为字符串 deal下面 我喜欢它有 52 个字母 同时考虑大小写 我发现了 php 函数str shuffle 所以我想我可以做以下事情 pack abcdefghijkl
  • 错误:使用本地文件时,summernote 不是一个函数

    我遇到了一个非常奇怪的问题 当我使用本地的 Summernote 文件加载文本编辑器时 发生了 summernote 不是函数 的情况 但是 如果我使用 cdn 文件加载编辑器 一切都会顺利 这是我的 HTML 标头代码
  • PHP 和 MySQLi 中没有选择数据库错误[重复]

    这个问题在这里已经有答案了 我必须从 MySQL 数据库中选择数据 我一直在寻找答案 但仍然没有找到 我正在学习W3School http www w3schools com php php mysql select asp 我的 MySQ
  • Aptana PHP Formatter - 使用自定义格式规则

    我在 PHP 文档中使用 Apatana 的格式化功能 它运行良好 但它转换的数组除外 data array email gt params email username gt params username 进入这个 data array
  • 访问位于服务器根目录之前/之外的文件?

    我正在为一家售后客服企业做一个内网 员工需要能够将 img 文件上传到互联网服务器 我需要将它们存储在 is BEFORE 的目录中www 网站的根目录 使用 php 执行此操作非常简单 但如何在上传这些图像后将它们包含在网站上 我试过这段
  • 接口实现:声明必须兼容

    我有界面 interface AbstractMapper public function objectToArray ActiveRecordBase object 和课程 class ActiveRecordBase class Pro
  • CodeIgniter form_validation->run() 总是返回 false?

    我是新来的CodeIgniter我一直在尝试实现表单提交功能 但是每当我按 提交 时 表单页面只会刷新并且数据库不会更新 看来 this gt form validation gt run 总是返回 false 但我不知道为什么 The 控
  • PHP正则表达式在wordpress短代码标签之间替换

    我有一个短代码 我希望能够根据帖子的上下文将其删除 例如 tooltip slug test Test Text tooltip 我希望输出是 span class dummy Test Text span 我已经用 preg replac
  • 提交ajax表单并停留在同一页面不起作用

    我想将用户的评论存储在我的数据库中 当用户提交时 我不想将他们重定向到新页面 我有以下代码 但它不起作用 我的 HTML 代码
  • 用于分页的php示例脚本[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 任何人都可以建议一个好的分页 php 脚本 其中人们想要分页显示数据库中的大量项目 以下链接可以帮助您

随机推荐

  • 如何在事件上使用 RxJs 和 Socket.IO

    我想在我的内部使用 RxJSsocket on sense function data 我对可用的文档很少以及对 RxJS 缺乏了解感到困惑和困惑 这是我的问题 我有一个distSensor js有一个函数 pingEnd function
  • 如何创建具有不同部分、不同颜色的圆角矩形

    要求 我如何创建一个像这样的视图 我想在屏幕上绘制一个视图 该视图是一条分成几段的线 显示整个视图的值百分比 我的要求是 视图有不同颜色的不同部分 视图可能不会渲染所有部分 它可能只有前 2 个或第一个和最后一个或只有单一颜色等 这仅在运行
  • 在无头模式下运行 WinDbg

    有没有办法让 WinDbg 处于纯无头模式 我的用例是 我应该能够在命令行上模拟 analyze v 命令进行小型转储 而无需启动 WinDbg GUI 使用 Windows 调试工具 还可以cdb 控制台调试器 要调试故障转储 请使用 z
  • firebase 分析中的 user_engagement 事件是如何生成的?

    我看到一个名为firebase screen class 随着engagement time msec firebase event origin and firebase screen id 在里面user engagementbigQu
  • “ng 新的我的应用程序”错误

    我正在尝试使用最新版本的 Angular 生成一个新项目和骨架应用程序 我尝试使用以下命令卸载并重新安装 Angular CLI C gt npm install g angular cli latest C gt ng version a
  • 为什么 WinDbg、任务管理器和 VS 调试器报告的线程数不同?

    当我的 Net 3 5 应用程序运行时 Windows 任务管理器显示我的应用程序有 16 个线程 我收集了该进程的内存转储并使用 WinDbg SOS 打开它 运行 threads 命令显示我有 ThreadCount 456 Unsta
  • 如何将 2 个 zip 文件合并为 1 个?

    我有 2 个 zip 文件 zip1 和 zip2 我需要将这些文件合并为一个 我该如何解决 我知道我可以修复它 将 ZIP1 解压到临时文件夹 然后将其添加到 zip2 但我认为效率很低 更快的方法是什么 我在用着System IO Co
  • Android:创建自定义资源类

    Android 上的 R 类有其局限性 您不能动态使用资源来加载音频 图片或其他内容 例如 如果您不想为选定的对象加载一组音频文件 则您不能执行以下操作 R raw string upon choosen object 我是 android
  • Jenkins 签出 GIT 项目失败,权限被拒绝致命:无法分叉

    我有一个 Freestyle Jenkins 项目 它使用 bitbucket 作为 SCM 使用 ssh 作为协议和私钥 不是用户 密码 当我在 master 上构建项目时 它失败并显示以下堆栈跟踪 而它在代理上运行良好 注意错误提到 s
  • X-Frame-Options 禁止 Facebook 应用程序错误

    我正在构建一个 Facebook 应用程序 目前它处于沙盒模式 我的代码 索引 php
  • Slick 3.0如何更新变量列列表,哪个数字只有在运行时才知道

    是否可以更新变量列列表 其中的数字仅在运行时由 slick 3 0 知道 下面是我想要做的示例 不会编译 var q Query UserTable UserTable TableElementType Seq userTable var
  • 隐式参数和函数

    我在考虑 Haskell GHC 中的隐式参数时遇到问题 我有一个函数f 假设隐式参数x 并希望通过应用将其封装在上下文中f to g f x Int gt Int gt Int f n n x g Int gt Int gt Int gt
  • 如何用范围填充可变参数?

    填充可变参数的正确方法是什么 我的尝试看起来像自行车 首先我构建范围然后我将其转换为列表然后到 intarray然后传播它 m getColumns count count 35 toList toIntArray 其中 getColumn
  • 将字符串插入工作表会导致插入数字

    在我的 Google Apps 脚本中 我在电子表格中添加了一行 在附加的这一行中 我尝试插入一个值 0102 的字符串 但是插入时它会转换为数字 102 有没有什么方法可以使用 Google Apps 脚本将值插入到工作表中 而不会格式化
  • Ubuntu 自动从 Github 存储库中拉取

    我在我的服务器上安装了 git 但我希望每当我推送本地所做的更改时它都会从我的 github 存储库中提取 我研究过钩子 但它非常令人困惑 而且我找不到任何教程 有谁知道这是怎么做到的吗 我希望我的服务器在每次提交后从存储库中提取 这看起来
  • JPA 和 PostgreSQL 与 GenerationType.IDENTITY

    我有关于 Postgres 和 GenerationType Identity 与 Sequence 的问题 在这个例子中 Id SequenceGenerator name mytable id seq sequenceName myta
  • PySpark Worker 中 rdd.collect() 上的 ModuleNotFoundError

    我正在 python 中运行 Apache Spark 程序 并且收到一个我无法理解且无法开始调试的错误 我有一个驱动程序 它在名为 hound py 的文件中定义了一个名为 hound 的函数 在同一目录中 我有一个名为 hound ba
  • PHP Websocket 在测试中验证用户身份(传递会话 cookie)

    我正在尝试测试一个场景 一方面 匿名用户应立即断开与 Websocket 连接的连接 另一方面 经过身份验证的用户应保持 Websocket 连接 第一种情况很容易使用下面的代码进行测试 身份验证过程不起作用 对于会话存储 我将 Cooki
  • 具有多种格式的 Moshi LocalDateTime 适配器

    默认情况下 ThreeTenABP LocalDateTime 转换为 date day 10 month 4 year 2018 time hour 3 minute 34 nano 115000000 second 18 我可以编写一个
  • Magento 客户/会话不工作

    这个问题首先被意识到是因为前端的订单历史页面 sales order history 只显示一条短消息 您没有下订单 经过一番调试 发现问题出在这个函数上 Mage getSingleton customer session 它不会返回包含