/ Сайтостроение / Плагины / Технология акций на Woocommerce

Технология акций на Woocommerce

18.08.2017

914

1

В одном из постов я анализировал плагины для создания массовых скидок (акций). В процессе этого мною был выработан довольно универсальный алгоритм создания акций.

Переделка плагина Woo Product Category Discount

Woo Product Category Discount — плагин массово редактирующий акционную цену у категорий товаров. Я изменил этот плагин, теперь он применяет скидки относительно меток товаров (product_tag).

В бесплатной версии плагин Woo Product Category Discount дает возможность применить скидку в рублях. Для снижения в процентах необходимо купить полную версию

Я заменил все Category, category, cat на Tag, tag соответственно. Изменения делал в файлах cd-admin.php и в скрипте tag-discount.js (название скрипта также изменено). Скачать измененный плагин.

Оформление акции

Теперь оформляем акцию соответствующим образом, добавляя название, описание, изображение метки. Изображение метки заводим с помощью плагина taxonomy term image master.

Выводим изображение с акцией (и ссылкой на акцию) в карточке товара:

// Выводим параметры метки товара
function tag_actions_woocommerce() {

global $post;

echo '<div id="actions">';

$actions_id = wp_get_object_terms($post->ID, 'product_tag');

foreach ($actions_id as $action_id) :
if ( $action_id->term_image ):
echo '<a href="' .get_tag_link($action_id->term_id). '">';
echo wp_get_attachment_image( $action_id->term_image, 'full' );
echo '</a>';
endif;
endforeach;

echo '</div>';
}

add_action( 'woocommerce_single_product_summary', 'tag_actions_woocommerce', 15 );

Выводим изображение акции в архивах товаров

function woocommerce_tag_actions_in_archive() {

global $post;

echo '<div id="actions">';

$actions_id = wp_get_object_terms($post->ID, 'product_tag');

foreach ($actions_id as $action_id) :
if ( $action_id->term_image ):
echo wp_get_attachment_image( $action_id->term_image, 'full' );
endif;
endforeach;

echo '</div>';

}

add_action( 'woocommerce_shop_loop_item_title', 'woocommerce_tag_actions_in_archive', 8 );

CSS для акционного изображения в архиве

/* Оформление акций */

.products .product #actions {position: absolute; top: 50px; right: 5px;}
	
.products .product #actions img {max-width: 50px;}

В зависимости от верстки сайта — можно задать 2 изображения акции: маленького размера для архивов и большое для карточки и для вывода на странице акции. Для этого можем задействовать дополнительное изображение таксономии.

Альтернативный способ ввода

Можно вводить метку альтернативным способом с помощью данного решения. Но в этом случае придется прописывать скрипт и стиль каждой метки по отдельности.

Добавления к скрипту и стили:

$('.products .product_tag-diskont a > .label, .product_tag-diskont #product-gallery > .label').prepend('ДИСКОНТ');

.products .product .label span.ondis, 
#product-content .label span.ondis {background-color: #FF5722; width: 80px;}

.products .product .label span.ondis:before,
#product-content .label span.ondis:before {border-top-color: #e23802;}

Страница акции

Страница акции выглядит как стандартный шаблон термина таксономии. Выводим вверху изображение и описание акции. Ниже динамически будут выводиться товары участвующие в акции (у которых присвоена данная метка).

Также нужно оформить страницу со всеми акциями. Для этого нужно создать шаблон с выводом терминов таксономии product_tag (меток товара).

Проверка есть ли акции (скидки)

С помощью функции:

function woo_have_onsale_products() {
	global $woocommerce;
	// Get products on sale
	$product_ids_on_sale = array_filter( wc_get_product_ids_on_sale() );
	if( !empty( $product_ids_on_sale ) ) {
		return true;
	} else {
		return false;
	}
}

// Example:
if( woo_have_onsale_products() ) {
	echo 'have onsale products';
} else {
	echo 'no onsale product';
}

Без функции, напрямую:

<?php global $woocommerce;

$product_ids_on_sale = array_filter( wc_get_product_ids_on_sale() );

if( !empty( $product_ids_on_sale ) ) {
  
 echo '<h2>Акции</h2>';
		
}  ?>

Вывод текста для товара с меткой

Еще один альтернативный простой способ вывода текста для товара с меткой, в шаблоне товара

add_filter( 'woocommerce_stock_html', 'filter_woocommerce_stock_html', 10, 3 ); 
function filter_woocommerce_stock_html( $availability_html, $availability_availability, $variation ) { 
    global $product;
    if ( has_term( 'preorder', 'product_tag', $product->ID ) ) :
        // Define here your text to replace
        $availability_html = __( 'Say something here', 'woocommerce' );
    endif;

    return $availability_html; 
};

preorder — наименование необходимой метки

Тэги:

Поделится информацией с друзьями

  • Похожие записи
  • Комментарии
  • Вложения
Плагины для woocommerce (нюансы)

Плагины для woocommerce (нюансы)

Рассмотрим различные плагины дополняющие функционал woocommerce, а также различные нюансы их использования. YITH WooCommerce Wishlist Плагин для добавление в ИМ раздела Избранное. В который можно/нужно помещать товары которые могут понадобится Читать далее »

/
Выравнивание миниатюр товаров

Выравнивание миниатюр товаров

Идеальная ситуация, когда мы загружаем изображения для товаров (хотя бы для главного изображения) квадратными. т.е. заранее подготовленными, откадрированными. Но бывают случаи, когда на сайт начинают заливаться изображения разных пропорций. Сделаем Читать далее »

/
Трекинг заказа

Трекинг заказа

Рассмотрим такой аспект работы интернет-магазина как трекинг заказа (order tracking), т.е. отслеживание статуса и местоположения заказа. YITH WooCommerce Order Tracking 8000 установок. В бесплатной версии добавляет к заказу (в админке) Читать далее »

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

1 комментарий

  1. Александр

    А есть этот плагин такой же как оригинальный, только с выставлением процента для категории?
    Заранее спасибо!

Технология акций на Woocommerce Технология акций на Woocommerce
Структура WP
Рекомендации для васСтруктура WPOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.