Добавление блоков на главной странице в интернет-магазине

Добавление блоков на главной странице

Для добавления новых блоков на главной странице их нужно зарегистрировать. Для этого используйте фильтр usam_register_home_blocks.

add_filter( 'usam_register_home_blocks', 'register_home_blocks');
function register_home_blocks( $blocks ) 
{		
     return [
	'products-grid' => ['title' => __('Товары', 'usam'), 'template' => 'template-parts/home-blocks/products-grid', 'options' => [
	['field_type' => 'select', 'name' => __('Какие товары выводить', 'usam'), 'code' => 'query', 'options' => [
     'last_purchased' => __('Последние проданные товары', 'usam'), 
     'leaders_sells_month' => __('Лидеры продаж за месяц', 'usam'), 
     'news' => __('Новинки', 'usam'), 
     'sticky' => __('Избранные менеджером товары', 'usam'), 
     'popularity' => __('Популярные товары по количеству просмотров', 'usam')
    ], 'default' => 'popularity'],
         ]],
        'popular-categories' => ['title' => __('Популярные категории', 'usam'), 'template' => 'template-parts/home-blocks/popular-categories', 'options' => [
         ['field_type' => 'categories', 'name' => __('Категории', 'usam'), 'code' => 'ids', 'default' => [], 'multiple' => 1],
	]],
   ];
}

Описание массива для регистрации блоков

title (строка) (обязательно)
Название блока

description (строка) (обязательно)
Описание блока

template (строка) (обязательно)
Путь в папке шаблона до файла

options (массив) (не обязательно)
Опции, необходимые для этого блока

После регистрации блоки будут доступны в Бизнес => Дизайн => Главные

Типы опций

Опции для блоков бывают следующих типов:

  • text — обычный текст или число
  • textarea — описание или текст
  • date — дата
  • select — список, если указать параметр multiple равный 1, то можно выбирать несколько значений
  • categories — выбор категории, если указать параметр multiple равный 1, то можно выбирать несколько значений
  • autocomplete — поиск по базе. Должен быть указан параметр request, что нужно искать, например, locations — город, pages — страница

Как получать в шаблоне название, описание и настройки блока

Чтобы получить название блока воспользуйтесь функцией usam_get_title_home_block

$title = usam_get_title_home_block();

Чтобы получить описание блока воспользуйтесь функцией usam_get_description_home_block

$description = usam_get_description_home_block();

Чтобы получить в шаблоне опцию, укажите её название

$ids = usam_get_option_home_block( 'ids' );

Регистрация баннеров

Часто в блоках на главной нужны баннеры. Чтобы платформа знала где их выводить их нужно зарегистрировать.

Этот код можно будет добавить в файл functions.php и будет зарегистрирован новая группа баннеров.

add_filter( 'usam_register_banners', 'register_banners');
function register_banners( $banners ) 
{		
    $banners['home_banners'] = __("На главной","usam");		
    return $banners;
}

Теперь эту группу можно выбрать в баннерах

Используйте функцию для вывода группы баннеров в шаблоне.

<?php usam_theme_banners(['banner_location' => 'home_banners', 'number' => 4]); ?>

banner_location (строка) (обязательно)
Зарегистрированная группа баннеров

number (число) (не обязательно)
Количество баннеров для вывода

Регистрация слайдеров

Так же в блоках на главной нужны слайдеры. Чтобы платформа знала где их выводить их нужно зарегистрировать.

add_filter( 'usam_register_sliders', 'register_sliders');	
function register_sliders( $sliders ) 
{
    $sliders['home_slider'] = __("На главной вверху","usam");
    return $sliders;
}

Теперь можно указать слайдер, который нужно вывести.

Чтобы вывести слайдер используйте хук wordpress, где к коду регистрации добавляется и получается home_slider_usam.

<?php do_action( 'usam_home_slider' ); ?>

Пример вывода слайдеров и баннеров в файле блока

<div class="banners">
   <div class="banners__head">
	<?php do_action( 'usam_banners_slider' ); ?>
	<div class="banners__block banners__block_vertical">			
	    <?php usam_theme_banners(['banner_location' => 'home_left_banners']); ?>
	</div>
   </div>	
    <div class="banners__block banners__block_horiz">		
	<?php usam_theme_banners(['banner_location' => 'home_footer_banners']); ?>
    </div>
</div>
Посмотри платформу для wordpress
сейчас
Посмотреть интернет-магазин
Вид интернет-магазина