2016-12-07 4 views
2

Я хочу отобразить 2 пользовательских атрибута продукта, которые я создал в admin на интерфейсе с условным выражением.Условный оператор в файле Magento 2 phtml

Первый - 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; ?> 

Моя проблема заключается в: Когда доступность EQUA l to 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

Чтобы ответить на мой собственный вопрос ...

Вы имеете глобальную переменную M2 под названием $product. Тогда для доступа к атрибутам продукта, скажем, наличие, вы должны получить доступ к нему, как это:

$product->[attribute-slug] 

так в моем случае, это было $product->availability.

Затем я использую на моем шаблоне (по умолчанию-яркостный), на шаблоне описания страницы продукта, с некоторыми условно:

<?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 }?> 

Надеется, что это поможет кому-то.