Плагин WooCommerce, вывод атрибутов в каталог товаров

KC
На сайте с 09.08.2012
Offline
82
3452

Привет.

Помогите, пожалуйста, подправить скрипт:

	$terms = get_the_terms( $post->ID, 'pa_namekey' );

if ( $terms && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
echo "<p style=\"color: #000;\"><b>Цвета:</b> " . $term->name . "</p>";
}
}
else {echo "";}

Благодаря ему выводятся атрибуты под товарами в каталоге (витрине) магазина.

где, pa_namekey - это название конкретного атрибута (например цвета)

Сейчас если например в атрибуте указать не один цвет а несколько, то под товаром напишет вот так:

Цвета: красный
Цвета: зеленый
Цвета: Синий

А хотелось бы, чтобы выводило так:

Цвета: красный, зеленый, синий

Нечто подобное выводится на странице конкретного товара вот таким кодом:

	<?php foreach ( $attributes as $attribute ) : ?>

<tr>
<th><?php echo wc_attribute_label( $attribute->get_name() ); ?></th>
<td><?php
$values = array();

if ( $attribute->is_taxonomy() ) {
$attribute_taxonomy = $attribute->get_taxonomy_object();
$attribute_values = wc_get_product_terms( $product->get_id(), $attribute->get_name(), array( 'fields' => 'all' ) );

foreach ( $attribute_values as $attribute_value ) {
$value_name = esc_html( $attribute_value->name );

if ( $attribute_taxonomy->attribute_public ) {
$values[] = '<a href="' . esc_url( get_term_link( $attribute_value->term_id, $attribute->get_name() ) ) . '" rel="tag">' . $value_name . '</a>';
} else {
$values[] = $value_name;
}
}
} else {
$values = $attribute->get_options();

foreach ( $values as &$value ) {
$value = make_clickable( esc_html( $value ) );
}
}

echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
?></td>
</tr>
<?php endforeach; ?>

Но здесь выводится весь перечень атрибутов.

Заранее спасибо.

KC
На сайте с 09.08.2012
Offline
82
#1

Может кому то пригодится. Пока сделала вот так:

	$terms = get_the_terms( $post->ID, 'pa_namekey' );

if ( $terms && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
if ( $KS == "Цвета") {
echo "<p style=\"color: #000;\">" . $term->name . "</p>";;
} else {
$KS = "Цвета";
echo "<p style=\"color: #000;\"><b>Цвета:</b> " . $term->name . "</p>";}
}
}
else {echo "";}

Выводит не полностью как хотела, но уже лучше чем было.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий