Задать вопрос
@Delerom

Изменить порядок вывода атрибутов в шаблоне?

В шаблоне есть вывод первый 4-х атрибутов. Как мне изменить цикл чтобы 3-й по счету атрибут выводился первым ?

<?php foreach ($product_attributes as $attribute):
            $attribute_data = $attribute->get_data();
            ?>
            <tr class="woocommerce-product-attributes-item woocommerce-product-attributes-item--<?php echo esc_attr($attribute_data['name']); ?>">
                <th class="woocommerce-product-attributes-item__label"><?php echo wc_attribute_label($attribute_data['name']); ?></th>
                <td class="woocommerce-product-attributes-item__value"><?php echo $product->get_attribute($attribute_data['name']); ?></td>
            </tr>
            <?php
            $i += 1;
            if ($i == 4) break;
        endforeach; ?>
  • Вопрос задан
  • 200 просмотров
Подписаться 2 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
Как сказал Антон Литвиненко до цикла изменить порядок элементов.

Но можно тупо в лоб.

$out = '';
$html = <<<HTML
	<tr class="woocommerce-product-attributes-item woocommerce-product-attributes-item--%s">
		<th class="woocommerce-product-attributes-item__label">%s</th>
		<td class="woocommerce-product-attributes-item__value">%s</td>
	</tr>
HTML;

$i = 1;
foreach ( $product_attributes as $attribute ):
	$attribute_data = $attribute->get_data();

	if ( $i !== 3 ) {
		$out .= sprintf( $html, esc_attr( $attribute_data['name'] ), wc_attribute_label( $attribute_data['name'], $product->get_attribute( $attribute_data['name'] ) ) );
	} else {
		printf( $html, esc_attr( $attribute_data['name'] ), wc_attribute_label( $attribute_data['name'], $product->get_attribute( $attribute_data['name'] ) ) );
	}

	$i ++;
endforeach;
echo $out;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы