簡體   English   中英

Magento - 在購物車中顯示自定義屬性

[英]Magento - show custom attribute in cart

我正在尋找一種方法來顯示產品的“估計交付”,使用我已經制作的“交付”屬性。

到目前為止,我已經設法將這個:

<?php $delivery= Mage::getSingleton('catalog/product')->load($this->getProduct()->getId())->getAttributeText('Delivery'); ?>
            <?php if(isset($delivery)){
                echo $delivery;
                }
                ?>

我把這篇文章添加到:

template / checkout / cart / item / default.phtml - 第38/39行之間(Magento版本1.6.2)

這是第35-49行的default.phtml,代碼添加到h2標記:

   <h2 class="product-name">
    <?php $_item = $this->getItem()?>
        <?// Delivery - Script ?>
        <?php $_product= Mage::getSingleton('catalog/product')->load($_item->getProductId()) ?>
        <?php $delivery= Mage::getSingleton('catalog/product')->load($this->getProduct()->getId())->getAttributeText('Delivery'); ?>
            <?php if(isset($delivery)){
                echo $delivery;
                }
                ?>      
    <?php if ($this->hasProductUrl()):?>
        <a href="<?php echo $this->getProductUrl() ?>"><?php echo $this->htmlEscape($this->getProductName()) ?></a>
    <?php else: ?>
        <?php echo $this->htmlEscape($this->getProductName()) ?>
    <?php endif; ?>
    </h2>

問題是,添加到購物車的第一個產品被跳過,它總是顯示屬性未設置,但第二個,第三個和其他產品添加到購物車,效果很好,顯示他們的交貨日期很好。

從這里開始,我不確定如何繼續?

經過一些谷歌,我發現了這個,這似乎有用 - 但我仍然不明白為什么,以及最大的區別是,如果有人想澄清它,我會非常高興。

這是工作解決方案,它很簡單,但我不明白:

<?php
$custom = Mage::getModel('catalog/product')->load($_item->getProductId());
echo $custom->getAttributeText('delivery');
?>

這不會跳過第一個產品嗎?

使用單例將導致重復調用相同的對象,因此先前的對象數據將被覆蓋。

一旦你從singleton變為getModel,你就有了每個產品的實例,所以不要在同一個實例上寫過。

應用程序/設計/前端/ {YOURTEMPLATE} /default/template/checkout/cart/item/default.phtml

過去這段代碼:

<?php $_item = $this->getItem(); ?>
<?php $_product = $_item->getProduct()->load(); ?>
<?php $_product->get{YOUR ATTRIBUT HERE}(); ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM