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

How to access a custom attribute I've created in Magento? (in PHP)

我想在我的 highlights.phtml 文件中包含一个 IF 语句,我可以在其中检查我的自定义属性(名为 preorder)是否已被选择与否。顾名思义,可以在产品上设置此自定义属性以表示是否可以预订。如何在下面的突出显示滑块代码中访问此 variable/attribute?它似乎不是 $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>

使用我添加的代码获取属性,然后将其用于您的逻辑。你想用属性做什么,你现在就可以做。但是 $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>