/ Плагины / Шорткод вывода товаров по метке

Шорткод вывода товаров по метке

HIT

26.08.2016

8956

Иногда требуется быстро вывести товары с определенной меткой. Данный шорткод проверял лично — работает.

// Шорткод для вывода товаров по метке
function woo_products_by_tags_shortcode( $atts, $content = null ) {
	// Get attribuets
	extract(shortcode_atts(array(
	"tags" => ''
	), $atts));

	ob_start();

	// Define Query Arguments
	$args = array(
		'post_type' => 'product',
		'posts_per_page' => 10,
		'product_tag' => $tags
	);

	// Create the new query
	$loop = new WP_Query( $args );

	// Get products number
	$product_count = $loop->post_count;

	if( $product_count > 0 ) :

		echo '<div class="tax-product_tag woocommerce-page"><div class="woocommerce"><ul class="products columns-'.esc_attr( wc_get_loop_prop( 'columns' ) ).'">';

		while ( $loop->have_posts() ) : $loop->the_post(); global $product;
			wc_get_template_part( 'content', 'product' );
		endwhile;

		echo '</ul></div></div>';
		
	else :

		_e('No product matching your criteria.');

	endif; // endif $product_count > 0

	return ob_get_clean();
}

add_shortcode("woo_products_by_tags", "woo_products_by_tags_shortcode");

В данной функции предусмотрен вывод товаров по колонкам (wc_get_loop_prop( ‘columns’ )).

Шорткод выглядит так:

[woo_products_by_tags tags="shoes,socks"]

Данный шорткод можно расширять, например добавив в него параметр количество товаров. Для этого нужно дополнить функцию парсинга шорткода:

extract(shortcode_atts(array(
	"tags" => '',
	"per_page" => ''	
), $atts));

и далее функцию выборки товаров:

$args = array(
	'post_type' => 'product',
	'posts_per_page' => $per_page,
	'product_tag' => $tags
);

Вывод товаров по метке без шорткода

Без шорткода товары по метке (product_tag) выводятся так:

<h2 class="index">Под заказ</h2>  
<div class="carousel"><div class="multiple-items woocommerce products">
  
<?php $args = array(
	'post_type' => 'product',
	'posts_per_page' => 4,
	'columns' => 4,
	'tax_query' => array(
		array(
			'taxonomy' => 'product_tag',
			'field' => 'slug',
			'terms' => 'zakaz'
		)
	)
);
$myposts = get_posts( $args );
foreach( $myposts as $post ) : setup_postdata($post); ?>

	<div <?php post_class( $classes ); ?>><span>
	<?php do_action( 'woocommerce_before_shop_loop_item' );
	do_action( 'woocommerce_before_shop_loop_item_title' );
	do_action( 'woocommerce_shop_loop_item_title' );
	do_action( 'woocommerce_after_shop_loop_item_title' );
	do_action( 'woocommerce_after_shop_loop_item' ); ?>
	</span></div>

<?php endforeach; ?>
<?php wp_reset_postdata() ?>
  
</div></div>

В данном примере также приведена верстка для функционала карусели

Более простой вывод товаров по метке (параметр product_tag):

<div class="carousel"><ul class="multiple-items woocommerce products">
<?php query_posts($query_string.'&post_type=product&posts_per_page=10&product_tag=action');
if(have_posts()) :
while(have_posts()) : the_post();
	get_template_part('solus-product');
endwhile; endif; ?>
</ul></div>

Вывод товаров по метаполю

На основе решения по созданию шорткода вывода товаров по тегам можно сделать вывод товаров по метаполю

// Шорткод для вывода товаров по полю

function woo_products_by_meta_shortcode( $atts, $content = null ) {
	// Get attribuets
	extract(shortcode_atts(array(
		"meta" => '',
		"per_page" => ''	
	), $atts));

	ob_start();

	// Define Query Arguments
	$args = array(
		'post_type' => 'product',
		'posts_per_page' => $per_page,
		'meta_key' => $meta
	);

	// Create the new query
	$loop = new WP_Query( $args );

	// Get products number
	$product_count = $loop->post_count;

	if( $product_count > 0 ) :

		echo '<div class="tax-product_tag woocommerce-page"><div class="woocommerce"><ul class="products columns-'.esc_attr( wc_get_loop_prop( 'columns' ) ).'">';

		while ( $loop->have_posts() ) : $loop->the_post(); global $product;
			wc_get_template_part( 'content', 'product' );
		endwhile;

		echo '</ul></div></div>';
		
	else :

		_e('No product matching your criteria.');

	endif; // endif $product_count > 0

	return ob_get_clean();
}

add_shortcode('woo_products_by_meta', 'woo_products_by_meta_shortcode');

Шорткод будет таким

[woo_products_by_meta meta="_checkbox_new"]
[site-socialshare]
  • Похожие записи
  • Комментарии
  • Вложения
Подарочные сертификаты

Подарочные сертификаты

Рассмотрим такой инструмент маркетинга как подарочные сертификаты, в ракурсе продажи его электронной версии. PW WooCommerce Gift (10 000) Алгоритм следующий: создает новый тип товара PW Gift Card. В котором можно Читать далее »

Обзор плагинов по фильтрации товаров WC

Обзор плагинов по фильтрации товаров WC

В данном обзоре мы будем приводить сильные и слабые стороны различных плагинов по созданию фильтрации товаров WC. Причем рассмотрим как платные, так и бесплатные решения. WooCommerce Products Filter (50 000) Читать далее »

/
Новинка (товар NEW полем)

Новинка (товар NEW полем)

Ранее были рассмотрены варианты добавления лэйбла New полуавтоматическим способом (последние созданные товары, либо по времени от текущего), либо назначением метки NEW. Здесь разберем как сделать данный функционал полем и какие Читать далее »

/

Добавить комментарий

Notice: Функция WP_Styles::add вызвана неправильно. Стиль с дескриптором "editor-buttons" был поставлен в очередь с незарегистрированными зависимостями: dashicons. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 6.9.1.) in /home/t/tiberi6w/opttour.ru/public_html/wp-includes/functions.php on line 6260

Пока нет комментариев. Будь первым!

Шорткод вывода товаров по метке
Image Magnifier
Рекомендации для васImage MagnifierOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.