Отображение ссылок на архив атрибутов товара

Этот сниппет позволяет вывести ссылки на архивы значений атрибутов товара WooCommerce прямо на странице товара, сразу под кнопкой «Добавить в корзину».

Каждое значение атрибута (например, цвет или размер) будет отображаться как ссылка, ведущая на страницу архива этого значения.

Как добавить код

Добавьте этот код в файл functions.php дочерней темы или используйте плагин для вставки сниппетов, например Code Snippets.

Не рекомендуется добавлять код в родительскую тему, так как он будет удалён при обновлении.

Код сниппета

/**
 * Display product attribute archive links 
 */
add_action( 'woocommerce_product_meta_end', 'wc_show_attribute_links' );
// if you'd like to show it on archive page, replace "woocommerce_product_meta_end" with "woocommerce_shop_loop_item_title"

function wc_show_attribute_links() {
	global $post;
	$attribute_names = array( '<ATTRIBUTE_NAME>', '<ANOTHER_ATTRIBUTE_NAME>' ); // Add attribute names here and remember to add the pa_ prefix to the attribute name
		
	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 $taxonomy->labels->name . ': ' . implode( ', ' . $terms_array );
	        }
    	}
    }
}

Важно

Не забудьте, что названия атрибутов должны использовать префикс pa_.

Пример: pa_color (цвет), pa_size (размер).

Если вы хотите вывести ссылки на странице каталога товаров, используйте хук:

add_action( 'woocommerce_shop_loop_item_title', 'wc_show_attribute_links' );

Поделиться с друзьями
Документация WooCommerce