Preskočiť na obsah

AJAX vyhľadávanie

AJAX vyhľadávanie nahrádza predvolené vyhľadávanie WooCommerce. Výsledky sa zobrazujú živé počas písania - bez opätovného načítania stránky.

Prejdite do WooCommerce > Polski > Obchodné moduly a aktivujte možnosť AJAX vyhľadávanie. Modul automaticky nahradí predvolený widget vyhľadávania WooCommerce.

Vyhľadávač prehľadáva viacero polí produktu súčasne:

Zákazník môže zadať číslo SKU produktu alebo jeho fragment. Vyhľadávanie podľa SKU je obzvlášť užitočné v B2B obchodoch, kde zákazníci objednávajú produkty podľa katalógových čísiel.

Ak je modul Výrobca aktívny, vyhľadávač zohľadňuje názov výrobcu vo výsledkoch. Zadanie napr. “Samsung” zobrazí všetky produkty tohto výrobcu.

Vyhľadávanie podľa čiarových kódov GTIN/EAN/UPC. Zákazník môže zadať úplný čiarový kód alebo jeho fragment na nájdenie produktu.

  • Názov produktu
  • Krátky popis
  • Kategórie
  • Štítky
  • Atribúty (farba, veľkosť atď.)

Konfigurácia prehľadávaných polí: WooCommerce > Polski > Obchodné moduly > AJAX vyhľadávanie > Polia vyhľadávania.

Dropdown s výsledkami zobrazuje:

  • Miniatúru produktu
  • Názov produktu (so zvýraznením zodpovedajúcich fragmentov)
  • Cenu
  • Kategóriu
  • Hodnotenie (hviezdičky)
  • Stav dostupnosti

Štandardne sa zobrazuje až 8 návrhov. Limit je možné zmeniť:

add_filter('polski/ajax_search/results_limit', function (): int {
return 12;
});

Minimálny počet znakov na začatie vyhľadávania je 3. Zmena:

add_filter('polski/ajax_search/min_chars', function (): int {
return 2;
});

Vyhľadávač využíva vlastný REST API endpoint namiesto admin-ajax.php, čo zabezpečuje lepší výkon.

Endpoint: GET /wp-json/polski/v1/search

Parametre:

ParameterTypPovinnýPopis
qstringÁnoVyhľadávacia fráza
limitintNieLimit výsledkov (štandardne 8)
catintNieID kategórie na filtrovanie

Príklad požiadavky:

Okno terminala
curl "https://tvoj-obchod.pl/wp-json/polski/v1/search?q=koszulka&limit=5"

Príklad odpovede:

{
"results": [
{
"id": 123,
"title": "Koszulka bawełniana",
"url": "https://tvoj-obchod.pl/produkt/koszulka-bawelniana/",
"image": "https://tvoj-obchod.pl/wp-content/uploads/koszulka.jpg",
"price_html": "<span class=\"amount\">49,00&nbsp;zł</span>",
"category": "Odzież",
"in_stock": true,
"rating": 4.5
}
],
"total": 1,
"query": "koszulka"
}

Modul sprístupňuje blok Polski - AJAX vyhľadávanie v editore Gutenberg. Blok je možné umiestniť do ľubovoľného príspevku, stránky alebo widgetu.

Možnosti bloku:

  • Placeholder - zástupný text v poli vyhľadávania
  • Šírka - šírka poľa (auto, plná, vlastná v px)
  • Ikona - zobrazenie/skrytie ikony lupy
  • Filter kategórie - zobrazenie dropdownu filtrovania podľa kategórie vedľa poľa vyhľadávania
  • Štýl - zaoblené rohy, orámovanie, tieň

Vloženie bloku: v editore Gutenberg kliknite na + a vyhľadajte Polski alebo AJAX vyhľadávanie.

Pre používateľov Elementora je dostupný špeciálny widget Polski AJAX Search. Widget sa nachádza v kategórii Polski for WooCommerce v bočnom paneli Elementora.

Možnosti widgetu zahŕňajú všetky nastavenia Gutenberg bloku a ďalšie:

  • Ovládanie typografie (rodina fontu, veľkosť, hrúbka)
  • Farby (pozadie, text, orámovanie, hover)
  • Okraje a paddingy
  • Animácia zobrazovania výsledkov
  • Responzivita (nastavenia per breakpoint)
ParameterTypPredvolenéPopis
placeholderstringSzukaj produktów…Zástupný text
widthstring100%Šírka poľa
show_iconstringyesZobraziť ikonu lupy
show_catstringnoZobraziť filter kategórie
limitint8Maximálny počet návrhov
[polski_ajax_search placeholder="Czego szukasz?" show_cat="yes" limit="10"]
// V functions.php témy
add_action('wp_body_open', function (): void {
echo do_shortcode('[polski_ajax_search placeholder="Szukaj..." width="400px"]');
});

Vyhľadávač používa debouncing 300 ms - požiadavka na server sa odošle až po 300 ms od posledného stlačenia klávesu. Zabraňuje to nadmernému počtu dopytov počas rýchleho písania.

Výsledky sú cachované na strane klienta v relácii prehliadača. Opätovné zadanie rovnakej frázy negeneruje dopyt na server.

Na strane servera sú výsledky cachované v transient API WordPressu (štandardne 1 hodina). Cache sa automaticky čistí po uložení, pridaní alebo odstránení produktu.

// Zmena času cache
add_filter('polski/ajax_search/cache_ttl', function (): int {
return 1800; // 30 minút v sekundách
});

CSS triedy modulu:

  • .polski-ajax-search - kontajner vyhľadávača
  • .polski-ajax-search__input - textové pole
  • .polski-ajax-search__results - dropdown s výsledkami
  • .polski-ajax-search__item - jednotlivý výsledok
  • .polski-ajax-search__item--active - zvýraznený výsledok (klávesová navigácia)
  • .polski-ajax-search__highlight - zvýraznenie zodpovedajúceho fragmentu
  • .polski-ajax-search__loading - spinner načítania

Vyhľadávač podporuje plnú klávesovú navigáciu:

  • Šípka nadol/nahor - navigácia po výsledkoch
  • Enter - prechod na vybraný produkt
  • Escape - zatvorenie dropdownu
  • ARIA atribúty: role="combobox", aria-expanded, aria-activedescendant

Nahlasovanie problémov: github.com/wppoland/polski/issues

Táto stránka slúži len na informačné účely a nepredstavuje právne poradenstvo. Pred implementáciou sa poraďte s právnikom. Polski for WooCommerce je open source softvér (GPLv2) poskytovaný bez záruky.