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

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

02.02.2019

241

Если у нас большой интернет-магазин с множеством подкатегорий, и периодически появляются новые, то дополнительное внимание к этому можно привлечь лэйблом 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) к товарам, описано тут.

Тэги:

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

  • Похожие записи
  • Комментарии
  • Вложения
Выравнивание миниатюр товаров

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

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

/
Использование купонов

Использование купонов

В ранних публикациях связанных со скидками woocommerce кое где мельком упоминались купоны. Рассмотрим более подробно тему купонов woocommerce, ведь они являются мощным инструментом маркетинга интернет-магазина. Создание купона Чтобы использовать купоны Читать далее »

Подкатегория за подкатегорией

Подкатегория за подкатегорией

В одной из ранних статей мы отдельно от основного вывода WC выводили подкатегории. В этой статье мы усложним код вывода категорий и сделаем у категорий и вывод товаров. Это даст Читать далее »

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

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

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