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

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

HIT

26.08.2016

7625

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

// Шорткод для вывода товаров по метке
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]
  • Похожие записи
  • Комментарии
  • Вложения
Настройка вывода подкатегорий товаров

Настройка вывода подкатегорий товаров

При варианте вывода в категориях товаров, в не зависимости есть ли подкатегории или нет, для более точного подбора товаров можно выводить до товаров подкатегории. При этом сделать это можно довольно Читать далее »

Watermark для изображений товаров (обзор плагинов)

Watermark для изображений товаров (обзор плагинов)

Рассмотрим различные плагины по добавлению водяного знака (watermark) на изображения товаров. WooCommerce Products Image Watermark (BeRocket) Плагин не понравился. Логотип добавляется только одним способом, с указанием положения. Можно перезагрузить загруженные Читать далее »

Лэйблы используя PHP

Лэйблы используя PHP

Как делать создание лэйблов налету средствами jQuery используя post_class описано здесь. В данной статье сделаем вывод подобных лэйблов средствами WordPress (PHP). Данный способ даст более гибкий и универсальный подход к Читать далее »

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

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

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