【发布时间】:2017-11-16 12:18:32
【问题描述】:
我需要获取购买和使用的下载次数,这是$item 对象上可用的两种方法。但我不能在我正在工作的文件上实例化$item:
app/code/core/Mage/Downloadable/Helper/Download.php
在这个文件上,我需要检索已购买下载的购买次数和使用次数。
我还在尝试获取订单 ID 或至少链接哈希,以使用购买的唯一 ID 来识别购买/使用的下载次数。
例如,我试试这个:
Mage::getModel('downloadable/link_purchased_item')
->load($this->getOrderItem()->getOrder()->getId(), 'order_id');
但是$this->getOrderItem() 在Download.php 文件中不可用。我正在尝试这个:
Mage::getModel('downloadable/link_purchased_item')->getCollection()
->addFieldToFilter('order_item_id', $this->getOrderItem()->getId());
但显然getOrderItem() 不可用。
致命错误:在第 135 行的 /[...]/app/code/core/Mage/Downloadable/Helper/Download.php 中调用未定义的方法 Mage_Downloadable_Helper_Download::getOrderItem()
但我可以使用客户单例来检索客户数据,如下所示:
$cliente = Mage::getSingleton('customer/session')->getCustomer();
所以在这个文件上我可以访问其他方法,但我无法获得以下详细信息:
- 购买的下载次数
- 使用的下载次数
- 订单 ID 或链接哈希 ID。
所以,我请求如何在与文件下载相关的Download.php 上获取当前订单实例和/或当前链接实例。
谢谢!
【问题讨论】:
-
这个功能不应该是模型的一部分吗? (而不是帮助者)
-
你检查过这个吗 - stackoverflow.com/a/13957878/4349218
-
@OfirBaruch 也许可以。但我不知道如何将该信息传递给助手,这是我需要获取数据的地方。
-
@Piyush 是的,但是在我写的文件上,它没有返回任何值。对象为空,那是因为我无法访问助手上的数据。因为我没有
$linkPurchasedItem的实例 -
您可能不同意,但我鼓励您寻找不同的方法,因为助手只是一组没有关系或面向数据的函数。 HTML 元素的助手,税收计算的助手,处理图像的助手 - 很好,但是当你开始将它与模型数据集成时......它打破了 MVC 架构。 (只是我的看法)
标签: php magento e-commerce magento-1.9