Php 跳过Magento中可下载产品的签出
我正在使用Magento建立一个电子书网站。对于此次发行,我们计划推出一些免费的可下载书籍。我们希望能够使用正常的Magento“目录”功能添加产品类别。然而,由于这些都是免费下载的产品,所以当用户尝试下载时,通过签出发送给他们是没有意义的 有人知道一种方法来创建一个完全绕过结帐的免费下载产品吗?我注意到,对于可下载的产品,有一个“免费样品”选项,但如果可以的话,我不想使用这个选项,因为我计划在添加付费产品时使用这个字段 [编辑] 我注意到,你们中的一些人因为“问题不够清晰”而否决了这个问题。为清楚起见,我想:Php 跳过Magento中可下载产品的签出,php,magento,download,product,Php,Magento,Download,Product,我正在使用Magento建立一个电子书网站。对于此次发行,我们计划推出一些免费的可下载书籍。我们希望能够使用正常的Magento“目录”功能添加产品类别。然而,由于这些都是免费下载的产品,所以当用户尝试下载时,通过签出发送给他们是没有意义的 有人知道一种方法来创建一个完全绕过结帐的免费下载产品吗?我注意到,对于可下载的产品,有一个“免费样品”选项,但如果可以的话,我不想使用这个选项,因为我计划在添加付费产品时使用这个字段 [编辑] 我注意到,你们中的一些人因为“问题不够清晰”而否决了这个问题。为
// $_product is the current product
$links = $product->getTypeInstance(true)->getLinks();
if(count($links)) {
foreach($links as $link) {
print "<a href='". $this->getUrl('downloadable/download/link', array(
'id' => $item->getLinkHash(),
'_secure' => true,
'_nosid' => true
)) . "'>Download</a>";
}
}
/$\u产品是当前产品
$links=$product->getTypeInstance(true)->getLinks();
如果(计算($links)){
foreach($links作为$link){
打印“”;
}
}
如果没有,我希望至少能让你走上正确的道路
希望有帮助。谢谢
Joe此代码将允许登录的客户“下订单”购买免费虚拟产品,同时绕过结账,直接将他们重定向到其帐户的“我的下载”部分 将以下行添加到所需位置的
目录/产品/列表.phtml
<?php if($_product->isVirtual() && $_product->getFinalPrice()==0) { ?>
<a href="/modulename/checkout/purchase/id/<?php echo $_product->getId()?>"><?php echo $this->__('Download and Install') ?></a>
<?php } ?>
您需要更好地处理异常,但这在功能上应该是正确的。您可以循环浏览可下载链接的列表,并为每个链接添加一个链接
$links=Mage::getModel('downloadable/link')
->getCollection()
->addFieldToFilter('product_id',array('eq'=>$_product->getId()));
foreach($links as $link){
echo "<a href='" . $link->getLink_url() . "'>Download</a>";
}
$links=Mage::getModel('downloadable/link')
->getCollection()
->addFieldToFilter('product_id',array('eq'=>$\u product->getId());
foreach($links作为$link){
回声“;
}
我猜人们可能不喜欢这个标题。听起来确实有点像垃圾邮件。也许是“跳过Magento中的签出”之类的东西?很好的反馈,-我已经更新了标题。你想将下载记录为“订单”还是只允许人们抓取它们。作为订单,您可以查看下载者的历史记录…谢谢。看起来我的一位同事设法用可配置的产品做到了这一点,但我不知道如何做到。如果我发现了,我会把它贴在这里。
$links=Mage::getModel('downloadable/link')
->getCollection()
->addFieldToFilter('product_id',array('eq'=>$_product->getId()));
foreach($links as $link){
echo "<a href='" . $link->getLink_url() . "'>Download</a>";
}