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

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

18.08.2017

809

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. Задачу разобьем на 2 этапа: выборка категорий необходимых для воздействия и непосредственно функция. Вывод определенного Читать далее »

/
Оформление полей заказчика

Оформление полей заказчика

При заказе товара необходимо заполнить данные покупателя (имя, телефон, адрес доставки и т.д.). В стандартном варианте поля эти несколько «раздуты», много лишнего, требуется некоторое оформление. Можно использовать плагин Saphali Woocommerce Читать далее »

/

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

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

  1. Александр

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

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