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

Вывод нескольких атрибутов woocommerce?

Есть такая функция которая выводит один атрибут , как сделать чтоб можно было вывести 3 выбранных атрибута?

function productShoes() {
	global $product;
	// Получаем элементы таксономии атрибута shoes
	$attribute_names = get_the_terms($product->get_id(), 'pa_shoes');
	$attribute_name = "pa_shoes";
	if ($attribute_names) {
		// Вывод имени атрибута shoes
		echo wc_attribute_label($attribute_name);
		// Выборка значения заданного атрибута
		foreach ($attribute_names as $attribute_name):
			// Вывод значений атрибута shoes
			echo $attribute_name->name;
		endforeach;
	}
}
// Определяем место вывода атрибута
add_action('woocommerce_single_product_summary', 'productShoes', 61);
  • Вопрос задан
  • 387 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
@WebforSelf Автор вопроса
/**
 * Вывод атрибутов на странице товара
 */

function productFeature() {
	global $post;
	$attribute_names = array( 'pa_razmer-domika', 'pa_materialy' );

	foreach ( $attribute_names as $attribute_name ) {
		$taxonomy = get_taxonomy( $attribute_name );

		if ( $taxonomy && ! is_wp_error( $taxonomy ) ) {
			$terms = wp_get_post_terms( $post->ID, $attribute_name );
			$terms_array = array();
			if ( ! empty( $terms ) ) {
				foreach ( $terms as $term ) {
					$archive_link = get_term_link( $term->slug, $attribute_name );
					$full_line = '<a href="' . $archive_link . '">'. $term->name . '</a>';
					array_push( $terms_array, $full_line );
				}
				echo '<span class="attribute">' . $taxonomy->labels->name . ' ' . implode( $terms_array, ', ' ). '</span>';
			}
		}
	}
}

// Определяем место вывода атрибута
add_action('woocommerce_single_product_summary', 'productFeature', 7);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Вызываем эту функцию 3 раза соответствунно меня значение pa_shoes на pa_****
Ответ написан
Filonov404
@Filonov404
wordpress разработчик
Да и может кому пригодится дополнение 1) правильно выводить вот так
echo '<span class="attribute">' . $taxonomy->labels->singular_name . ' ' . implode( $terms_array, ', ' ). '</span>';

singular_name вместо name , иначе с каждым атрибутом выводится слово Товар
2) префикс pa_ для имени атрибута обязательно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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