Przejdź do głównej zawartości

Bloki Gutenberg

Trzy bloki Gutenberg do wstawiania modułów sklepowych. Każdy blok ma podgląd w edytorze (server-side render) i konfigurację w panelu bocznym.

  • WordPress 6.0 lub nowszy
  • Edytor blokowy Gutenberg (nie klasyczny edytor)
  • Aktywny odpowiedni moduł w ustawieniach Polski for WooCommerce

Znajdź bloki w inserterze (przycisk +) w kategorii Polski for WooCommerce. Lub wyszukaj wpisując “Polski”.

Nazwa bloku: polski/ajax-search

Pole wyszukiwania z podpowiedziami AJAX. Wyniki pojawiają się w dropdownie podczas wpisywania.

AtrybutTypDomyślnieOpis
placeholderstringSzukaj produktów…Tekst zastępczy w polu
widthstring100%Szerokość pola
showIconbooltrueIkona lupy
showCategoryboolfalseDropdown filtrowania po kategorii
limitnumber8Limit podpowiedzi
minCharsnumber3Min. znaków do wyszukania
stylestringdefaultStyl: default, rounded, flat

Panel boczny bloku zawiera sekcje:

Ustawienia wyszukiwania:

  • Tekst zastępczy (placeholder)
  • Minimalna liczba znaków
  • Limit wyników
  • Filtr kategorii (tak/nie)

Wygląd:

  • Szerokość pola
  • Styl (domyślny, zaokrąglony, płaski)
  • Ikona lupy (tak/nie)
  • Obramowanie (tak/nie)
  • Cień (tak/nie)

Zaawansowane:

  • Dodatkowe klasy CSS
  • HTML anchor (kotwica)

Przykład rejestracji bloku (wewnętrzna implementacja)

Dział zatytułowany „Przykład rejestracji bloku (wewnętrzna implementacja)”
register_block_type('polski/ajax-search', [
'api_version' => 3,
'editor_script' => 'polski-blocks-editor',
'editor_style' => 'polski-blocks-editor-style',
'style' => 'polski-blocks-style',
'render_callback' => [AjaxSearchBlock::class, 'render'],
'attributes' => [
'placeholder' => [
'type' => 'string',
'default' => __('Szukaj produktów…', 'polski'),
],
'width' => [
'type' => 'string',
'default' => '100%',
],
'showIcon' => [
'type' => 'boolean',
'default' => true,
],
'showCategory' => [
'type' => 'boolean',
'default' => false,
],
'limit' => [
'type' => 'number',
'default' => 8,
],
],
]);
add_filter('polski/blocks/ajax_search/output', function (string $html, array $attributes): string {
// Modyfikacja HTML bloku
return $html;
}, 10, 2);

Nazwa bloku: polski/ajax-filters

Filtry AJAX do filtrowania produktów bez przeładowania strony.

AtrybutTypDomyślnieOpis
filtersarray['category', 'price', 'stock']Aktywne filtry
stylestringexpandedStyl: expanded, compact, accordion
showCountbooltrueLiczniki produktów
showResetbooltruePrzycisk resetowania
columnsnumber1Kolumny filtrów
collapsiblebooltrueZwijane sekcje

Wybór filtrów:

  • Checkboxy dla każdego typu filtra
  • Drag & drop sortowanie kolejności filtrów
  • Konfiguracja per filtr (np. przedziały cenowe)

Wygląd:

  • Styl wyświetlania (rozwinięty, kompaktowy, akordeon)
  • Liczba kolumn
  • Liczniki (tak/nie)
  • Przycisk resetowania (tak/nie)
  • Domyślnie zwinięte/rozwinięte

Zaawansowane:

  • Tryb AJAX / GET fallback
  • Dodatkowe klasy CSS

Blok automatycznie wykrywa dostępne filtry na podstawie danych produktów:

FiltrTypOpis
categoryHierarchiaKategorie produktów
priceRange sliderZakres cenowy
stockCheckboxStatus magazynowy
saleCheckboxTylko w promocji
brandListaProducent/marka
pa_*Lista/SwatchAtrybuty produktów
ratingGwiazdkiOcena klientów
add_filter('polski/blocks/ajax_filters/output', function (string $html, array $attributes): string {
return $html;
}, 10, 2);

Najlepiej działa w sidebarze. W motywie blokowym (FSE) dodaj go do szablonu Archive: Product. W motywach klasycznych użyj w widgetach Sidebar sklepu.

Nazwa bloku: polski/product-slider

Karuzela produktów z nawigacją strzałkami i opcjonalnymi kropkami paginacji.

AtrybutTypDomyślnieOpis
typestringlatestTyp: related, sale, featured, bestsellers, latest, category, ids
limitnumber8Limit produktów
columnsnumber4Kolumny desktop
columnsTabletnumber2Kolumny tablet
columnsMobilenumber1Kolumny mobile
categorystringSlug kategorii
productIdsarray[]ID produktów
showArrowsbooltrueStrzałki nawigacji
showDotsboolfalseKropki paginacji
autoplayboolfalseAutomatyczne przewijanie
autoplaySpeednumber5000Przerwa między slajdami (ms)
gapstring16pxOdstęp między kartami
titlestringNagłówek
orderbystringdateSortowanie
orderstringDESCKierunek

Źródło produktów:

  • Typ slidera (dropdown z opcjami)
  • Wybór kategorii (dla type=category)
  • Wybór produktów (dla type=ids) - wyszukiwarka z autouzupełnianiem
  • Limit produktów
  • Sortowanie

Wyświetlanie:

  • Kolumny (desktop / tablet / mobile)
  • Odstęp (gap)
  • Strzałki (tak/nie)
  • Kropki (tak/nie)
  • Nagłówek

Animacja:

  • Autoplay (tak/nie)
  • Prędkość autoplay (slider 1000-10000 ms)
  • Pauza przy hover

Podgląd w edytorze pokazuje rzeczywiste produkty z bazy. Bez pasujących produktów blok wyświetla placeholder.

add_filter('polski/blocks/product_slider/output', function (string $html, array $attributes): string {
return $html;
}, 10, 2);
// Modyfikacja zapytania produktów
add_filter('polski/blocks/product_slider/query_args', function (array $args, array $attributes): array {
// Wyklucz produkty z kategorii "ukryte"
$args['tax_query'][] = [
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'ukryte',
'operator' => 'NOT IN',
];
return $args;
}, 10, 2);

Bloki w pełni wspierają motywy blokowe (FSE). Wstawiaj je w:

  • Szablonach stron (Page Templates)
  • Szablonach archiwów produktów
  • Częściach szablonów (Template Parts) - nagłówek, stopka, sidebar
  • Wzorcach (Patterns)

Klasy CSS zgodne z konwencją BEM. Bloki obsługują natywne ustawienia stylów Gutenberg:

  • Kolory (tekst, tło)
  • Typografia (rozmiar, grubość, rodzina fontu)
  • Marginesy i paddingi (spacing)
  • Obramowanie (border)

Bloki nie pojawiają się w inserterze - upewnij się, że odpowiedni moduł jest aktywny w WooCommerce > Polski > Moduły sklepowe. Bloki wymagają aktywacji odpowiedniego modułu.

Podgląd bloku jest pusty - sprawdź, czy sklep ma produkty pasujące do wybranego typu. Pusta baza produktów nie wygeneruje podglądu.

Bloki nie działają w Elementorze - te bloki są przeznaczone dla edytora Gutenberg. Dla Elementora użyj shortcodów lub dedykowanych widgetów Elementor (dostępnych dla wyszukiwarki AJAX).

Zgłaszanie problemów: github.com/wppoland/polski/issues

Ta strona ma wyłącznie charakter informacyjny i nie stanowi porady prawnej. Przed wdrożeniem skonsultuj się z prawnikiem. Polski for WooCommerce jest oprogramowaniem open source (GPLv2) dostarczanym bez gwarancji.