Pregunta

Estoy usando este código en 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>

en la segunda línea del código puedes ver: if ($_data['code'] == 'mobile_design') , aquí "mobile_design" es un atributo, quiero agregar un atributo más aquí, así que estoy usando el siguiente 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>

pero no me funciona

¿Fue útil?

Solución

claro que no funciona...

($_data['code'] == 'mobile_design') && ($_data['code'] == 'gendernew') siempre se evaluará como falso.
Si $_data['code'] == 'mobile_design' entonces nunca lo será gendernew.
También si $_data['code'] == 'gendernew' entonces nunca lo será mobile_design.

entonces su expresión se evalúa en uno de estos casos:

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

todo lo anterior se evalúa como false.es conjunción lógica 101.

Si desea que su código se ejecute para ambos mobile_design y gendernew los casos reemplazan && con ||.
|| es Disyunción lógica

true || false evalúa a true
false || true evalúa a true
false || false evalúa a false

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top