如果物品已经在magento的心愿单中,则隐藏心愿单按钮

时间:2016-02-18 06:33:09

标签: magento

Magento ver。 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; ?>

进一步我想动态更新wishlist按钮。 ie fa-heart-o尽快更新心愿单。 [新到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

1 个答案:

答案 0 :(得分:0)

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

类别页面

打开模板/ catalog / product / 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; ?>

产品页面

打开模板/目录/产品/ view / 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页面或块上的心愿单中。