Pergunta

estou usando este código em atributos.phtml:

<?php 
if ($_data['code'] == 'mobile_design')
{ ?>
<td class="data">
<?php
$_ageValues = $_product->getAttributeText($_data['code']);
$count = 1;
?>
<?php if(is_array($_ageValues)): foreach($_ageValues as $_ageValue): ?>
<?php if($count > 1) { echo ","; } ?>
<?php echo $_ageValue; ?>
<?php $count++; ?>
<?php endforeach; 
else: echo $_product->getAttributeText($_data['code']);
endif; ?>
</td>

na 2ª linha do código você pode ver: if ($_data['code'] == 'mobile_design') , aqui "mobile_design" é um atributo, quero adicionar mais um atributo aqui, então estou usando o seguinte código:

<?php 
    if (($_data['code'] == 'mobile_design') || ($_data['code'] == 'gendernew')) // please check this line
    { ?>
    <td class="data">
    <?php
    $_ageValues = $_product->getAttributeText($_data['code']);
    $count = 1;
    ?>
    <?php if(is_array($_ageValues)): foreach($_ageValues as $_ageValue): ?>
    <?php if($count > 1) { echo ","; } ?>
    <?php echo $_ageValue; ?>
    <?php $count++; ?>
    <?php endforeach; 
    else: echo $_product->getAttributeText($_data['code']);
    endif; ?>
    </td>

mas não está funcionando para mim

Foi útil?

Solução

claro que não funciona...

($_data['code'] == 'mobile_design') && ($_data['code'] == 'gendernew') sempre será avaliado como falso.
Se $_data['code'] == 'mobile_design' então nunca será gendernew.
Também se $_data['code'] == 'gendernew' então nunca será mobile_design.

então sua expressão é avaliada como um destes casos:

true && false
false && true
false && false

todos os itens acima são avaliados como false.isso é conjunção lógica 101.

Se você quiser que seu código seja executado para ambos mobile_design e gendernew casos substituir && com ||.
|| é Disjunção Lógica

true || false avalia para true
false || true avalia para true
false || false avalia para false

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top