qrs
qrs

Reputation: 177

Magento PHP Coding: Visibility = Not Visible Individually -- Still Shows Up

I have an "Also Bought" module that works just fine but after I set a product in administration to Visibility = Not Visible Individually it still shows in my also bought. Here's the code I've been working on:

    <?php $_helper = $this->helper('catalog/output'); ?>
    <?php $_product = $this->getProduct(); ?>
    <?php
    /**
     * Magento
     *
     * NOTICE OF LICENSE
     *
     * This source file is subject to the Academic Free License (AFL 3.0)
     * that is bundled with this package in the file LICENSE_AFL.txt.
     * It is also available through the world-wide-web at this URL:
     * http://opensource.org/licenses/afl-3.0.php
     * If you did not receive a copy of the license and are unable to
     * obtain it through the world-wide-web, please send an email
     * to [email protected] so we can send you a copy immediately.
     *
     * DISCLAIMER
     *
     * Do not edit or add to this file if you wish to upgrade Magento to newer
     * versions in the future. If you wish to customize Magento for your
     * needs please refer to http://www.magentocommerce.com for more information.
     *
     * @category    design
     * @package     base_default
     * @copyright   Copyright (c) 2009 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
     * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
     */

    /**
     * Shoping cart sidebar
     *
     * @see Mage_Checkout_Block_Cart_Sidebar
     */
    $title = $this->getTitle();
    $le = $this->getBoughtProducts();
    /*foreach($le as $_index=>$_item){
            echo $_item->getId();
            }
    exit;*/
    $lecount=count($le );
    ?>
    <?php if($this->getEnable()){
    //echo Mage::getVersion();
    ?>
    <div class="also-bought-wrap">
        <?php if($lecount>0): ?>
            <h4 class="relations"><?php echo $title; ?>
                <?php if($lecount>0): ?>
                    <small><?php echo $this->__('(%d)', $lecount) ?></small>
                <?php endif; ?></h4>

        <ol id="also-bought">
           <?php foreach ($le as $_index => $_item) {  
        //  echo $_index."<hr>";
        //  $_item=$le[$_index];
        //  echo $_item->getStatus();
            ?>

    <?php if ($_product->isVisibleInSiteVisibility()): ?> <--------------HERE       

            <li class="also-bought-li">
                <div class="product-images">
                    <a href="<?php echo $_item->getProductUrl() ?>">
                        <img src="<?php echo $this->helper('catalog/image')->init($_item, 'thumbnail')->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize(50); ?>" alt="<?php echo $this->htmlEscape($_item->getName()) ?>" width="50" height="74" />
                    </a>
                </div>
                <div class="product-details">

                    <a href="<?php echo $_item->getProductUrl() ?>"><?php echo $this->htmlEscape($_item->getName()) ?></a>
                    <div style="font-size:9px"><?php echo $this->getPriceHtml($_item) ?>
                    </div>
                    <div class="also-bought-text">
                     <?php if ($this->helper('wishlist')->isAllow()) : ?>
                                <a id="also-bought-wishlist" href="<?php echo $this->getAddToWishlistUrl($_item) ?>" class="link-cart"><?php echo $this->__('Add to Wishlist') ?></a>
                            <?php endif; ?>
                            <?php if($_item->isSaleable()): ?>
                    <div class="clear"></div>
                     <a id="also-bought-price" href="<?php echo $this->getAddToCartUrl($_item) ?>" class="link-cart"><?php echo $this->__('Add to Cart') ?></a>
                    <?php endif; ?>
                    </div>
                </div>
            </li>

<?php endif; ?>  <-----------------HERE

        <?php } ?>
        </ol>

        <?php else: ?>
        <div class="content"><p><?php echo $this->__(' ') ?></p></div>
        <?php endif ?>
    </div>
    <?php } ?>

Can someone please help me on this? What gets me is it seems to think the product IS visible because if I change:

<?php if ($_product->isVisibleInSiteVisibility()): ?>

to...

<?php if (!$_product->isVisibleInSiteVisibility()): ?>

then all the "Also Bought" products stop showing.

Thanks

Upvotes: 0

Views: 1477

Answers (1)

aynber
aynber

Reputation: 23011

You're checking the current product, not the 'Also Bought' product. Change the line to

<?php if ($_item->isVisibleInSiteVisibility()): ?>

Upvotes: 1

Related Questions