【问题标题】:hide wishlist button if item is already in wishlist in magento如果项目已经在 magento 的愿望清单中,则隐藏愿望清单按钮
【发布时间】:2016-02-18 06:33:08
【问题描述】:

Magento 版本。 1.9.1.0 .

如果项目已经在当前客户的愿望清单中,则隐藏愿望清单按钮或将其更改为“心”

<?php if ($this->helper('wishlist')->isAllow()) : ?>
      <div class="ajax-wishlist">
        <a href="#" 
          onclick='ajaxWishlist("<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>","<?php echo $_product->getId()?>");return false;' class="link-wishlist" title="Add to Wishlist">
          <i class="fa fa-heart-o"></i>
       </a>
     </div>
<?php endif; ?>

我还想动态更新愿望清单按钮。即 fa-heart-o 到 fa-heart 一旦更新愿望清单.. [magento 新手]

参考Check whether a product is in the wishlist or not

我试过了。

<?php $wishlist = Mage::getModel('wishlist/item')->load($_product->getId(),'product_id');
  if($wishlist->getId())
      //product is added
  echo "Added! - Product is in the wishlist!";
  else
      //add product to wishlist
  echo "<a href='".$this->helper('wishlist')->getAddUrl($_product) ."'>Add This?</a>";
  ;?>

它显示已被任何客户添加到愿望清单的所有产品。 以及如何将上述代码用于主页产品?即新来的,观看次数最多的等。它显示了对非对象上的成员函数getId()的error.call

【问题讨论】:

    标签: magento


    【解决方案1】:

    如果您需要检查产品是否在愿望清单中并显示该信息而不是默认的 Magento“添加到愿望清单”链接,本文适合您。为了简化事情,我将解释如何检测产品是否在类别和产品页面的愿望清单中,但对于任何其他寻呼机或块,原理都是相同的。您只需要确保您有可用的产品 ID。其他一切都应该在任何页面上都可以正常工作。

    分类页面

    打开模板/目录/产品/list.phtml 找到愿望清单链接代码。如果您使用的是基本主题,它应该看起来像这样:

    <?php if ($this->helper('wishlist')->isAllow()) : ?>
     <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
    <?php endif; ?>
    

    替换为:

    <?php if ($this->helper('wishlist')->isAllow()) : ?>
     <?php foreach (Mage::helper('wishlist')->getWishlistItemCollection() as $_wishlist_item): ?>
      <?php $_in_wishlist = false; ?>
      <?php if($_product->getId() == $_wishlist_item->getProduct()->getId()): ?>
       <?php $_in_wishlist = true; break; ?>
      <?php endif; ?>
     <?php endforeach; ?>
    
     <?php if(!empty($_in_wishlist) && $_in_wishlist): ?>
      <li><span class="in-wishlist"><?php echo $this->__('Already in Wishlist') ?></span></li>
     <?php else: ?>
      <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
     <?php endif; ?>
    <?php endif; ?>
    

    产品页面

    打开模板/目录/产品/视图/addto.phtml 找到愿望清单链接代码。如果您使用的是基本主题,它应该看起来像这样:

    <?php if ($this->helper('wishlist')->isAllow()) : ?>
        <li><a href="<?php echo $_wishlistSubmitUrl ?>" onclick="productAddToCartForm.submitLight(this, this.href); return false;" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
    <?php endif; ?>
    

    替换为:

    <?php if ($this->helper('wishlist')->isAllow()) : ?>
     <?php foreach (Mage::helper('wishlist')->getWishlistItemCollection() as $_wishlist_item): ?>
      <?php $_in_wishlist = false; ?>
      <?php if($_product->getId() == $_wishlist_item->getProduct()->getId()): ?>
       <?php $_in_wishlist = true; break; ?>
      <?php endif; ?>
     <?php endforeach; ?>
    
     <?php if(!empty($_in_wishlist) && $_in_wishlist): ?>
      <li><span class="is-wishlist"><?php echo $this->__('Already in Wishlist') ?></span></li>
     <?php else: ?>
      <li><a href="<?php echo $_wishlistSubmitUrl ?>" onclick="productAddToCartForm.submitLight(this, this.href); return false;" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
     <?php endif; ?>
    <?php endif; ?>
    

    就是这样。正如我上面所说,只要您有可用的产品 ID,您就可以使用此方法检查产品是否在任何 Magento 页面的愿望清单中或阻止。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多