在 Download.php 上访问 $item->getNumberOfDownloadsUsed() 函数
Get access to $item->getNumberOfDownloadsUsed() function on Download.php
我需要获取购买和使用的下载数量,这是 $item
对象上可用的两种方法。但是我无法在我正在处理的文件上实例化 $item
:
app/code/core/Mage/Downloadable/Helper/Download.php
在这个文件上,我需要检索已购买下载的购买数量和使用数量。
我也在尝试获取订单 ID 或至少 link 哈希值,以识别具有购买唯一 ID 的 boughts/used 下载次数。
例如,我试试这个:
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()
不可用。
Fatal error: Call to undefined method Mage_Downloadable_Helper_Download::getOrderItem() in /[...]/app/code/core/Mage/Downloadable/Helper/Download.php on line 135
但我可以像这样使用客户单例来检索客户数据:
$cliente = Mage::getSingleton('customer/session')->getCustomer();
所以在这个文件上我可以访问其他方法,但我无法获得以下详细信息:
- 购买的下载次数
- 使用的下载次数
- 订单 ID 或 Link 哈希 ID。
请教如何获取当前订单实例和/或当前link实例,在Download.php
与文件下载相关。
谢谢!
你做错了,如果没有 set/declaring 它们,你无法得到任何像这样的对象 $this->getOrderItem()
。当您尝试在帮助器中获取 order_id
和 item_id
时,您正在从客户可下载产品重定向的自定义页面上使用它们。这是你必须做的
步骤 - 1
从客户我的可下载产品,在重定向 url 中,您必须将产品 order_id
和 item_id
作为参数传递。您可以从下面的代码中获取它们
$orderId = $_item->getPurchased()->getOrderId();
$itemId = $_item->getId();
步骤-2
现在在您的模板文件中使用您的辅助函数时将此 order_id
和 item_id
传递给方法参数。喜欢下面的代码
$orderId = $this->getRequest()->getParam('order_param');
$itemId = $this->getRequest()->getParam('item_param');
//Your helper function
Mage::helper('your_helper')->yourMethod($orderId, $itemId);
步骤 - 3
在您的帮助文件中,您可以使用以下代码
public function yourMethod($orderId, $itemId)
{
$linkPurchasedItem = Mage::getModel('downloadable/link_purchased_item')
->load($orderItem, 'order_id');
$LinkPurchaseOrderItemId = Mage::getModel('downloadable/link_purchased_item')->getCollection()
->addFieldToFilter('order_item_id', $itemId);
}
注意:不要对核心文件进行任何更改,而是覆盖它们
我需要获取购买和使用的下载数量,这是 $item
对象上可用的两种方法。但是我无法在我正在处理的文件上实例化 $item
:
app/code/core/Mage/Downloadable/Helper/Download.php
在这个文件上,我需要检索已购买下载的购买数量和使用数量。
我也在尝试获取订单 ID 或至少 link 哈希值,以识别具有购买唯一 ID 的 boughts/used 下载次数。
例如,我试试这个:
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()
不可用。
Fatal error: Call to undefined method Mage_Downloadable_Helper_Download::getOrderItem() in /[...]/app/code/core/Mage/Downloadable/Helper/Download.php on line 135
但我可以像这样使用客户单例来检索客户数据:
$cliente = Mage::getSingleton('customer/session')->getCustomer();
所以在这个文件上我可以访问其他方法,但我无法获得以下详细信息:
- 购买的下载次数
- 使用的下载次数
- 订单 ID 或 Link 哈希 ID。
请教如何获取当前订单实例和/或当前link实例,在Download.php
与文件下载相关。
谢谢!
你做错了,如果没有 set/declaring 它们,你无法得到任何像这样的对象 $this->getOrderItem()
。当您尝试在帮助器中获取 order_id
和 item_id
时,您正在从客户可下载产品重定向的自定义页面上使用它们。这是你必须做的
步骤 - 1
从客户我的可下载产品,在重定向 url 中,您必须将产品 order_id
和 item_id
作为参数传递。您可以从下面的代码中获取它们
$orderId = $_item->getPurchased()->getOrderId();
$itemId = $_item->getId();
步骤-2
现在在您的模板文件中使用您的辅助函数时将此 order_id
和 item_id
传递给方法参数。喜欢下面的代码
$orderId = $this->getRequest()->getParam('order_param');
$itemId = $this->getRequest()->getParam('item_param');
//Your helper function
Mage::helper('your_helper')->yourMethod($orderId, $itemId);
步骤 - 3
在您的帮助文件中,您可以使用以下代码
public function yourMethod($orderId, $itemId)
{
$linkPurchasedItem = Mage::getModel('downloadable/link_purchased_item')
->load($orderItem, 'order_id');
$LinkPurchaseOrderItemId = Mage::getModel('downloadable/link_purchased_item')->getCollection()
->addFieldToFilter('order_item_id', $itemId);
}
注意:不要对核心文件进行任何更改,而是覆盖它们