Ладно, это немного сложно, потому что вы меняете порядок принятия решения на порцию 4. Чтобы решить это, у вас может быть дополнительная переменная $flag
, которая изначально установлена на false
.
Итак, проверка выглядит следующим образом:
if ($flag && ($c & 1) == 0 || !$flag && ($c & 1) == 1)
Это говорит о том, что мы находимся на нечетной итерации (когда $ flag равен false), а текущий $c
нечетен или мы на четной итерации (когда $ flag имеет значение true), а текущий $c
является четным.
Мы сбрасываем флаг, когда $c
повторно инициализируется до 0
, указывая на переворачивание следующей строки.
Фрагмент:
<?php
$c = 0;
$product = wc_get_product( $product_id );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
<div class="col-md-3 pl-0 pr-0">
<a href="<?php the_permalink(); ?>">
<div class="product-list-item <?php if ($flag && ($c & 1) == 0 || !$flag && ($c & 1) == 1) { ?>bg-grey<?php } ?>">
<div class="img-wrapper">
<?php echo $product->get_image('full', array('class' => 'img-fluid')); ?>
</div>
<div class="product-content">
<span class="product-title"><?php echo $product->get_name(); ?></span>
<span class="product-price">€ <?php $price = $product->price; $price_incl_tax = $price + round($price * ( 0 / 100 ), 2); $price_incl_tax = number_format($price_incl_tax, 2, ",", "."); $price = number_format($price, 2, ",", "."); echo $price_incl_tax; ?> incl. BTW</span>
</div>
</div>
</a>
</div>
<?php $c = ($c + 1) % 4; $flag = $c == 0 ? !$flag : $flag; endwhile; wp_reset_query(); // Remember to reset ?>