iborisbelov
@iborisbelov
Веб-дизайнер, UX\UI

WOOCOMMERCE, как сделать атрибуты активными при нажатии?

Здравствуйте.
Есть сайт

Видите, внизу страницы есть "Свойства" и там выводяться атрибуты от сюда

0740a7255e30469c88fcc2d916598537.png

Задача: реализовать такую фишку, чтобы при нажатии на "Коллекция 1" в Коллекции, мы попадали в раздел каталога Коллекция-1, по заданному атрибуту.

Пример реализации на стороннем сайте.

Вопрос: как это реализовать? скорее всего в файле product-attributes.php нужно поставить задачу на то, чтобы водпресс выдал мне значение ссылки атрибутов, которые выводятся, и я смог этот параметр заключить в <a href=""

Может кто сталкивался. Помогите. Очень важен Вашет ответ, или даже лучше помощь в решении.

-------------

Ответ найден.

Замените

<td><?php
				if ( $attribute['is_taxonomy'] ) {

					$values = wc_get_product_terms( $product->id, $attribute['name'], array( 'fields' => 'names' ) );
					echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );

				} else {

					// Convert pipes to commas and display values
					$values = array_map( 'trim', explode( WC_DELIMITER, $attribute['value'] ) );
					echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );

				}
			?></td>


на

<td><?php
				if ( $attribute['is_taxonomy'] ) {

				//	$values = woocommerce_get_product_terms( $product->id, $attribute['name'], 'names' );
				//	echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );

				//https://gist.github.com/coenjacobs/2594985

				global $post;

				$attribute_names = $attribute;

				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 '<p>'. implode( $terms_array, ',  ' ) . '</p>';
				        }
			    	}
			    }								

				} else {

					// Convert pipes to commas and display values
					$values = array_map( 'trim', explode( '|', $attribute['value'] ) );
					echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );

				}
			?></td>
  • Вопрос задан
  • 2822 просмотра
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
На указанном сайте-примере используется какой-то плагин (свой или общедоступный) для фильтрации товаров по каталогу. Соответственно, сами ссылки просто используют этот механизм, и имеют вид:

cat/filter:brand=nike/

Формат у них такой, но может быть и другой. Можете через дефолтный механизм работать. Эта часть, собственно, выводит товары по этому фильтру (атрибуту). Что касается оформления самих атрибутов в виде ссылки - есть хуки для работы с product attributes. Смотрите исходники, документацию, почитайте вот это:

docs.woothemes.com/wc-apidocs/hook-docs.html

https://www.skyverge.com/blog/change-woocommerce-a...
stackoverflow.com/questions/23801195/how-to-integr...
wordpress.stackexchange.com/questions/124079/wooco...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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