Tovább a tartalomhoz

Termékek szűrése cím szerint

WooCommerce-termékek szűrése a címük alapján: Kiválasztás szűrő a p lekérdezési változóval, és Keresés szűrő egyéni PHP-részlettel.

Termékeket cím szerint kétféleképp szűrhetsz: legördülő (vagy választógombos, jelölőnégyzetes) listával, amelyben a termékek címei opcióként szerepelnek, vagy keresőmezővel.

  • Elementor (az ingyenes is elég), blokkszerkesztő vagy Bricks.
  • Aktív WooCommerce és JetSmartFilters.

Kiválasztás szűrő a termékcímekkel

Szekció neve “Kiválasztás szűrő a termékcímekkel”
  1. Nyisd meg az Intelligens szűrők → Új hozzáadása oldalt.
  2. Adj nevet a szűrőnek, és válaszd a Kiválasztás típust. Használhatod a Választógomb vagy a Jelölőnégyzetek listája típust is.
  3. Az adatforrás legyen Bejegyzések, a Helykitöltő mezőt hagyhatod az alapértéken.
  4. A Bejegyzés típusa mezőben válaszd a Products (termékek) lehetőséget.
  5. A Lekérdezési változó mező jobb oldalán kattints a dinamikus címke ikonjára, és válaszd a Plain Query Variable lehetőséget. A megjelenő Variable Name mezőbe írd be: p.
  6. Mentsd a szűrőt.
https://minta-bolt.hu/wp-admin/admin.php?page=jet-smart-filters
Bejegyzések adatforrású szűrő (termékek)

A képen az adatforrás Bejegyzések, alatta a Bejegyzés típusa mező látszik. A Lekérdezési változó mezőbe (a dinamikus címke ikonnal) kerül a p érték.

A szűrőt az oldalon úgy kell elhelyezni és a termékeket kiíró elemhez kötni, ahogy a WooCommerce archívumnál vagy a termékrácsnál. Az Intelligens szűrők → Beállítások → Általános beállítások oldalon láthatod, mely widgetekkel kompatibilis a bővítmény. A példában a szűrőt a JetWooBuilder Products Grid widgetjéhez kötjük (lásd a Szűrők és lapozás a JetWooBuilder Products Gridhez fejezetet), majd közzéteszed az oldalt.

A nyilvános oldalon a legördülő listából kiválasztott terméknév (például „Sapka”) esetén csak az a termék marad a rácsban.

A beépített Keresés szűrő a címre nem keres külön, ehhez egy kis PHP-kód kell.

Add hozzá az alábbi osztályt az aktív gyermektéma functions.php fájljához (Megjelenés → Témafájl-szerkesztő → functions.php), vagy egy kódrészletkezelő bővítményhez:

<?php
class JSF_Search_By_Post_Tiltle {
public $key = 'search__post_title';
public function __construct() {
add_filter( 'jet-smart-filters/query/final-query', array( $this, 'modify_query' ) );
}
public function modify_query( $query ) {
if ( ! isset( $query['meta_query'] ) ) {
return $query;
}
foreach ( $query['meta_query'] as $key => $item ) {
if ( false !== strpos( $item['key'], $this->key ) ) {
unset( $query['meta_query'][$key] );
global $wpdb;
$sql = "SELECT ID FROM {$wpdb->posts} WHERE post_title LIKE '%{$item['value']}%'";
$posts = array_column( $wpdb->get_results( $sql, 'ARRAY_A' ), 'ID' );
if ( ! empty( $posts ) && isset( $query['post__in'] ) ) {
$query['post__in'] = array_intersect( $posts, $query['post__in'] );
} elseif ( ! empty( $posts ) ) {
$query['post__in'] = $posts;
}
if ( empty( $query['post__in'] ) ) {
$query['post__in'] = array( 0 );
}
}
}
return $query;
}
}
new JSF_Search_By_Post_Tiltle();

A kód kiveszi a lekérdezésből a search__post_title kulcsú metaszabályt, és helyette a bejegyzések címében keres a beírt szövegre.

  1. Nyisd meg az Intelligens szűrők → Új hozzáadása oldalt, adj nevet, és válaszd a Keresés típust.
  2. A Keresés módja mezőben válaszd az Egyéni mező szerint (lekérdezési változóból) lehetőséget. A helykitöltő maradhat az alapérték.
  3. A Lekérdezési változó mezőbe írd be: search__post_title.
  4. Mentsd a szűrőt.
https://minta-bolt.hu/wp-admin/admin.php?page=jet-smart-filters
Keresés szűrő egyéni mezővel, lekérdezési változóval

Kösd a keresőszűrőt a Products Grid widgethez ugyanúgy, mint a többi szűrőt, és tedd közzé az oldalt. A nyilvános oldalon egy terméknév (például „Polo”) beírása után a rács a találatokat mutatja.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások