كيفية الحصول على روابط المنتج القابلة للتنزيل بعد ترتيب ناجح
سؤال
بعد أمر ناجح ، أود أن أقترح مباشرة عنوان URL القابل للتنزيل للمشتري المنتجات التي تم شراؤها في ملف Success.phtml.
لقد كتبت هذه القطعة من الكود لمعرفة قيم المنتج لأحدث ترتيب:
// Get the latest Order ID
$order = Mage::getModel('sales/order')->load(Mage::getSingleton('checkout/session')->getLastOrderId());
// Get every products on the latest order
$items = $order->getAllItems();
// Loop the products
foreach ($items as $item){
$product = Mage::getModel('catalog/product')->setStoreId($order->getStoreId())->load($item->getProductId());
// HERE I NEED FUNCTION TO GET DOWNLOADABLE URL LINK
}
المحلول
لقد وجدت حلًا ، ها هو:
أولاً ، قم بإنشاء ملف .phtml جديد في القالب/ القابل للتنزيل/ ، دعوت Mine DownloadAblist.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; ?>
لقد غيرت عنوان URL ، كان على الملف القابل للتنزيل الأصلي:
href="<?php echo $this->getUrl('downloadable/download/link/', array('id' => $_item->getLinkHash(), '_secure' => true)) ?>"
شكرًا لك
نصائح أخرى
هذا عمل بالنسبة لي:
$links = Mage::getModel('downloadable/link_purchased_item')->getCollection()
->addFieldToFilter('order_item_id', $item->getId());
foreach ($links as $link) {
echo Mage::helper('downloadable')->__('download') .
$this->getUrl('downloadable/download/link',
array('id' => $link->getLinkHash(), '_store' => $order()->getStore(),
'_secure' => true, '_nosid' => true));
}
لا تنتمي إلى StackOverflow