/ Плагины / Категория товаров NEW

Категория товаров NEW

HIT

02.02.2019

2450

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

Добавить slug к классам категории

Изначально функция прописывает только product-category и product, а также first и last. Расширим это, добавив класс в виде slug категории:

// Добавить класс к подкатегориям товаров в архиве
add_filter( 'product_cat_class' , 'add_class_to_category_list_element', 10, 3 );
function add_class_to_category_list_element( $classes, $class, $category ) {
    if( is_object( $category ) )
        $classes[] = $category->slug;
    return $classes;
}

Этот вывод классов работает для категорий, подкатегорий и для вывода категорий через шорткоды WC.

Поле checkbox для категории товара

Создадим поле checkbox для терминов таксономии категория товара (+ вывод этого поля при добавлении нового термина)

//Создание метаполя
add_action('product_cat_add_form_fields', 'wh_taxonomy_add_new_meta_field', 10, 1);
add_action('product_cat_edit_form_fields', 'wh_taxonomy_edit_meta_field', 10, 1);

//Product Cat Create page
function wh_taxonomy_add_new_meta_field() {
    ?>   
    <div class="form-field">
        <label for="wh_meta_desc">
		<input type="hidden" name="wh_meta_desc" value="">
		<input name="wh_meta_desc" type="checkbox" id="wh_meta_desc"> Новинка
		</label>
    </div>
    <?php
}



//Product Cat Edit page
function wh_taxonomy_edit_meta_field($term) {
    //getting term ID
    $term_id = $term->term_id;
    // retrieve the existing value(s) for this meta field.
    $wh_meta_desc = get_term_meta($term_id, 'wh_meta_desc', true);
    ?>
    <tr class="form-field">
        <th scope="row" valign="top"><label for="wh_meta_desc">Новинка</label></th>
        <td>
			<label for="wh_meta_desc">
			<input type="hidden" name="wh_meta_desc" value="">
			<input name="wh_meta_desc" type="checkbox" id="wh_meta_desc" <?php if ($wh_meta_desc == 'on'){ echo 'checked'; }; ?>> Новинка
			</label>
        </td>
    </tr>
    <?php
}


// Сохранение данных метаполя
add_action('edited_product_cat', 'wh_save_taxonomy_custom_meta', 10, 1);
add_action('create_product_cat', 'wh_save_taxonomy_custom_meta', 10, 1);

// Save extra taxonomy fields callback function.
function wh_save_taxonomy_custom_meta($term_id) {
    $wh_meta_desc = filter_input(INPUT_POST, 'wh_meta_desc');
    update_term_meta($term_id, 'wh_meta_desc', $wh_meta_desc);
}

Далее дорабатываем вывод классов категорий WC

add_filter( 'product_cat_class' , 'add_class_to_category_list_element', 10, 3 );
function add_class_to_category_list_element( $classes, $class, $category ) {
    if( is_object( $category ) )
		$wh_meta_desc = get_term_meta($category->term_id, 'wh_meta_desc', true);
		if ($wh_meta_desc == 'on'){ $classes[] = 'new-cat'; };
	
    return $classes;
}

Стили лэйбла NEW

.new-cat:before {
    content: 'NEW';
    position: absolute;
    font-size: 0.8rem;
    line-height: 19px;
    background: #32cd32;
    color: #fff;
    padding: 3px 15px;
    left: 5px;
    top: 30px;
    box-shadow: 2px 2px 4px rgba(17,17,17,.5);
    border-radius: 0 3px 3px 0;
}

.new-cat:after {
    content: '';
    position: absolute;
    top: 55px;
    left: 5px;
    border: 10px solid transparent;
    border-right: 0;
    border-top-color: #297709;
}

Про добавление классов (в т.ч. NEW) к товарам, описано тут.

[site-socialshare]
  • Похожие записи
  • Комментарии
  • Вложения
Watermark для изображений товаров (обзор плагинов)

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

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

Вкладка Дополнительная информация

Вкладка Дополнительная информация

У товаров WC есть вкладка Дополнительная информация (Additional Information), в которой по-умолчанию выводятся атрибуты, вес и габариты товара. Добавим в эту вкладку дополнительные данные. Проверки содержит ли товар атрибуты, вес Читать далее »

Цены в зависимости от группы пользователей

Цены в зависимости от группы пользователей

Попробуем разобраться в вопросе цен для определенных групп пользователей. Либо это должно быть реализовано специальной колонкой цен, либо скидкой на все товары. WC Role Based Price Плагин WC Role Based Читать далее »

/ /

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

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

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

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