Magento 2 phtml文件中的条件语句

时间:2016-12-07 13:40:15

标签: php if-statement conditional magento2

我想在条形语句的前端显示我在管理员中创建的2个自定义产品属性。<​​/ p>

第一个是Availability,第二个是shipping_rate

Availability product attribute

Shipping rate product attribute

我编辑了位于以下位置的defauproduct页面模板:

/vendor/magento/module-catalog/view/frontend/templates/product/view/type/default.phtml

到此:

<?php
/**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

// @codingStandardsIgnoreFile

?>
<?php /* @var $block \Magento\Catalog\Block\Product\View\AbstractView */?>
<?php $_product = $block->getProduct() ?>

<?php if ($block->displayProductStockStatus()): ?>
    <?php if ($_product->isAvailable()): ?>
        <div class="stock available" title="<?php /* @escapeNotVerified */ echo __('Availability') ?>">
            <span><?php /* @escapeNotVerified */ echo __('In stock') ?></span>
        </div>
        <span class="estimated-delivery">    
        <?php /* @escapeNotVerified */ if ($_product->getResource()->getAttribute('availability')->getValue($_product) != '0'): ?>
            Livraison estimée dans <?php /* @escapeNotVerified */ echo $_product->getResource()->getAttribute('availability')->getFrontend()->getValue($_product); ?> jour(s)</span>
        <?php endif; ?>
        <span>Livraison à partir de <?php /* @escapeNotVerified */ echo $_product->getResource()->getAttribute('shipping_rate')->getFrontend()->getValue($_product); ?> ‎€</span>
    <?php else: ?>
        <div class="stock unavailable" title="<?php /* @escapeNotVerified */ echo __('Availability') ?>">
            <span><?php /* @escapeNotVerified */ echo __('Out of stock') ?></span>
        </div>
    <?php endif; ?>
<?php endif; ?>

我的问题是: 当可用性等于0时,我想显示一些东西,当它与0不同时,我想显示其他东西。这是一个经典的条件陈述,但我没有成功:S

这就是我所做的,而且它没有用。

<span class="estimated-delivery">    
    <?php /* @escapeNotVerified */ if ($_product->getResource()->getAttribute('availability')->getValue($_product) != '0'): ?>
            Livraison estimée dans <?php /* @escapeNotVerified */ echo $_product->getResource()->getAttribute('availability')->getFrontend()->getValue($_product); ?> jour(s)</span>
        <?php else ?>
             Disponibilité: <strong>En Stock</strong> </span>    
    <?php endif; ?>

有人可以帮我写这个条件语句吗?

由于

1 个答案:

答案 0 :(得分:1)

回答我自己的问题......

您有一个名为$product的M2全局变量。 然后,为了访问您的产品属性,假设可用性,您应该像这样访问它:

$product->[attribute-slug]

所以在我的情况下,这是$product->availability

然后我在产品页面描述模板上使用我的模板(default-luma),带有一些条件:

<?php if ($product->availability > 0 ) {?>
  <span>Product will be delivered in <?php echo $product->availability; ?> days.</span>
<?php} else {?>
  <span> Product is in stock </span>
<?php }?>

希望这有助于某人。