在成功页面上添加可下载链接

时间:2012-03-07 22:36:59

标签: php magento magento-1.5

  

可能重复:
  How to get downloadable product links after successfull order

我想知道订购后是否可以在Magento成功页面上添加多个下载链接。

我可以使用以下代码获得一个可下载文件的工作链接:

$incrementId = $this->getOrderId();

$linkPurchased = Mage::getModel('downloadable/link_purchased')->load($incrementId, 'order_increment_id');

$downloadableItems = Mage::getResourceModel('downloadable/link_purchased_item_collection')->addFieldToFilter('purchased_id', $linkPurchased->getPurchasedId());
foreach ($downloadableItems as $item) {

$links = Mage::getModel('core/url')->getUrl('downloadable/download/link', array('id' => $item->getLinkHash(), '_secure' => true));
echo $this->__('Download').' le <a href="'.$links.'" target="_blank">file</a>';

即使我的订单有多个项目,它也会在成功页面上给我一个完美的链接。

问题: $ linkPurchased中的对象只有一个项目。

为什么

Mage::getModel('downloadable/link_purchased')->load($incrementId, 'order_increment_id');

只返回一项?

谢谢

2 个答案:

答案 0 :(得分:2)

我找到了一个解决方案,这里是:

首先,在template / downloadable /中创建一个新的.phtml文件,我打电话给我的downloadablelist.phtml

然后在我们的新downloadablelist.phtml中复制所有模板/可下载/客户/产品/ list.phtml

这将为我们提供可下载产品列表的客户帐户副本。

在成功页面中调用我们的块:

<?php echo $this->getLayout()->createBlock('downloadable/customer_products_list')->setTemplate('downloadable/checkout/downloadablelist.phtml')->toHtml(); ?>

现在我从产品列表中清理了我不需要的东西。我删除了表并添加了一个ul。

接下来只显示从最后一个订单生成的产品。

<?php
$_items = $this->getItems();
$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
if(count($_items)):
$_group_id = Mage::helper('customer')->getCustomer()->getGroupId();
echo '<p><strong>'.$this->__('Downloadable products').' : </strong></p>'; ?>
<ul style="margin-left: 30px; list-style: disc;">
        <?php foreach ($_items as $_item):
            $itemOrderId = $_item->getPurchased()->getOrderIncrementId();
            if($itemOrderId == $orderId) {?>
            <li><?php echo $this->htmlEscape($_item->getPurchased()->getProductName()) ?> - <a href="<?php echo $this->getUrl('downloadable/download/link/', array('id' => $_item->getLinkHash(), '_secure' => true)) ?>" title="<?php echo Mage::helper('downloadable')->__('Start Download') ?>" <?php echo $this->getIsOpenInNewWindow()?'onclick="this.target=\'_blank\'"':''; ?>><?php echo $_item->getLinkTitle() ?></a></li>
            <?php }
            endforeach; ?>
    </ul>
<?php endif; ?>

我更改了原始可下载文件的网址:

href="<?php echo $this->getUrl('downloadable/download/link/', array('id' => $_item->getLinkHash(), '_secure' => true)) ?>"

谢谢

答案 1 :(得分:0)