如何访问我在Magento中创建的自定义属性? (在PHP中)

时间:2019-11-12 18:55:19

标签: php html magento magento-1.9

我想在我的highlights.phtml文件中包含一个 IF语句,在这里我可以检查是否已选择我的自定义属性(名为preorder)。顾名思义,可以在产品上设置此自定义属性,以表示是否可以预定。如何在下面的突出显示滑块代码中访问此变量/属性?它似乎不属于$products数组的一部分?

<?php $products = $this->getHighlightedProducts() ?>
<?php if (is_array($products) && count($products)): ?>
<div class="block block-related">
    <div class="block-title">
        <h2><?php echo $this->__('Highlighted Products') ?></h2>
    </div>
    <div class="block-content">
        <div class="product-carousel">
            <div class="product-carousel">
                <ul class="highlighted-products-slider slider">
                    <?php $limit = 6; ?>
                    <?php foreach ($products as $product): ?>
                        <li class="item">
                            <div class="product" >
                                <a class="product-image" href="<?php echo $this->escapeHtml($product['url']) ?>">
                                    <img src="<?php echo $this->escapeHtml($product['image']) ?>">
                                </a>
                                <div class="product-details">
                                    <p class="product-name">
                                        <a href="<?php echo $this->escapeHtml($product['url']) ?>"> <?php echo $this->escapeHtml($product['name']) ?></a>
                                    </p>

                                    <?php echo $product['price'] ?>
                                </div>
                                <div class="actions">
                                    <a href="<?php echo $this->escapeHtml($product['add_to_cart_url']) ?>">
                                        <button class="button btn-cart"><?php echo $this->__('Add to Cart') ?></button>
                                    </a>
                                </div>
                            </div>
                        </li>
                        <?php
                        if(++$ct >= $limit)
                            break;
                        ?>
                    <?php endforeach ?>
                    <?php endif ?>
                </ul>
            </div>
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

使用我添加的代码获取属性,然后将其用于您的逻辑。您想对属性执行的操作现在可以进行。但是$ product ['id']必须存在! 您需要产品ID才能正常工作,否则可能是SKU。

希望能提供帮助。

<?php $products = $this->getHighlightedProducts() ?>
<?php if (is_array($products) && count($products)): ?>
<div class="block block-related">
    <div class="block-title">
        <h2><?php echo $this->__('Highlighted Products') ?></h2>
    </div>
    <div class="block-content">
        <div class="product-carousel">
            <div class="product-carousel">
                <ul class="highlighted-products-slider slider">
                    <?php $limit = 6; ?>
                    <?php foreach ($products as $product): ?>
                    <?php
                        $productToCheck= Mage::getModel('catalog/product')->load($product['id']);
                        //use this variable
                        $variable = $productToCheck->getData('preorder');
                        //use this variable when attribute is a dropdown
                        $variableIfItsADropdown = $product->getAttributeText('preorder');
                    ?>
                        <li class="item">
                            <div class="product" >
                                <a class="product-image" href="<?php echo $this->escapeHtml($product['url']) ?>">
                                    <img src="<?php echo $this->escapeHtml($product['image']) ?>">
                                </a>
                                <div class="product-details">
                                    <p class="product-name">
                                        <a href="<?php echo $this->escapeHtml($product['url']) ?>"> <?php echo $this->escapeHtml($product['name']) ?></a>
                                    </p>

                                    <?php echo $product['price'] ?>
                                </div>
                                <div class="actions">
                                    <a href="<?php echo $this->escapeHtml($product['add_to_cart_url']) ?>">
                                        <button class="button btn-cart"><?php echo $this->__('Add to Cart') ?></button>
                                    </a>
                                </div>
                            </div>
                        </li>
                        <?php
                        if(++$ct >= $limit)
                            break;
                        ?>
                    <?php endforeach ?>
                    <?php endif ?>
                </ul>
            </div>
        </div>
    </div>
</div>