# A termékek rövidkód

> A [products] rövidkód attribútumai és gyakorlati példái: akciós, kiemelt, legkelendőbb és újdonság termékek, kategória-, tulajdonság- és címkeszűrés.

A `[products]` a WooCommerce legsokoldalúbb rövidkódja. Termékeket jelenít meg azonosító, cikkszám, kategória, tulajdonság vagy címke alapján, lapozással és véletlen sorrenddel is. Ezzel kiváltható a korábbi sok külön rövidkód: a `[featured_products]`, a `[sale_products]`, a `[best_selling_products]`, a `[recent_products]`, a `[product_attribute]` és a `[top_rated_products]`.

A rövidkódot a **Rövidkód** blokkba illeszd be ([lásd az áttekintést](https://hub.hellowp.io/hu/manuals/woocommerce/bolt-megjelenese/bolt-megjelenese-rovidkodok/)). Rugalmasabb, blokkos megoldás a Termékgyűjtemény blokk.

## Megjelenés és sorrend

| Attribútum | Mit csinál | Alapérték |
|---|---|---|
| `limit` | A megjelenített termékek száma. | `-1` (az összes) |
| `columns` | Az oszlopok száma. | `4` |
| `paginate` | Lapozás be (`true`) vagy ki (`false`). A `limit` mellett használd. | `false` |
| `orderby` | Rendezés. Több értéket szóközzel elválasztva adhatsz meg. | `title` |
| `order` | Növekvő (`ASC`) vagy csökkenő (`DESC`) sorrend az `orderby` szerint. | `ASC` |
| `class` | Egy HTML-osztályt ad a megjelenített listához, amelyet egyéni CSS-sel formázhatsz. | |

Az `orderby` értékei:

- `title`: a termék neve (alapértelmezett);
- `date`: a közzététel dátuma;
- `id`: a termék azonosítója;
- `menu_order`: a kézzel megadott sorrend (a kisebb szám elöl áll);
- `popularity`: a vásárlások száma;
- `rand`: véletlen sorrend az oldal betöltésekor (gyorsítótárazott oldalon nem biztos, hogy működik, mert a gyorsítótár egy adott sorrendet is elmenthet);
- `rating`: az átlagos értékelés.

Ha nem adsz meg `orderby` értéket, a termékek az alapértelmezett sorrendben jelennek meg: előbb a kézi sorrend (a termék **Haladó** füle), azon belül a név szerint.

## Melyik termékek jelenjenek meg

| Attribútum | Mit csinál |
|---|---|
| `ids` | Termékazonosítók vesszővel elválasztva. |
| `skus` | Cikkszámok vesszővel elválasztva. |
| `category` | Kategóriák szövege az URL-ben (slug), vesszővel elválasztva. |
| `cat_operator` | A kategóriák összevetése: `IN` (a kategóriában lévők, alapérték), `NOT IN` (a kategóriákban nem lévők), `AND` (mindegyik kategóriában lévők). |
| `tag` | Címkék slugja vesszővel elválasztva. |
| `tag_operator` | A címkék összevetése: `IN` (alapérték), `NOT IN`, `AND`. |
| `attribute` | A tulajdonság slugja. |
| `terms` | A tulajdonság értékei vesszővel elválasztva, az `attribute` mellé. |
| `terms_operator` | A tulajdonságértékek összevetése: `IN` (alapérték), `NOT IN`, `AND`. |
| `visibility` | A láthatóság szerinti szűrés, lásd lent. |

A `visibility` értékei:

- `visible`: a boltban és a keresési találatok között is látszó termékek (alapérték);
- `catalog`: csak a boltban látszanak, a keresésben nem;
- `search`: csak a keresési találatok között látszanak;
- `hidden`: sem a boltban, sem a keresésben nem látszanak, csak a közvetlen webcímen érhetők el;
- `featured`: a kiemelt termékek.

Ha egy terméknek meg kellene jelennie, de nem látszik, ellenőrizd, hogy a termék **Katalógus láthatósága** nem „Rejtett”-re van-e állítva.

A termék azonosítóját a **Termékek** listában találod: vidd az egérmutatót a termék sora fölé, és az azonosító a terméknév alatt megjelenik.

## Különleges attribútumok

Két attribútum a fenti szűrőkkel együtt nem használható, mert ütköznek, és a lista üres maradhat. Egyszerre csak az egyiket használd:

- `best_selling="true"`: a legkelendőbb termékeket mutatja;
- `on_sale="true"`: az akciós termékeket mutatja.

A `top_rated="true"` a legjobban értékelt termékeket mutatja. Az `on_sale`, a `best_selling` és a `top_rated` egymással sem használható együtt.

## Példák

### Akciós termékek

Négy akciós termék egy sorban, népszerűség szerint rendezve. A `quick-sale` osztályt egyéni CSS-sel formázhatod:

```
[products limit="4" columns="4" orderby="popularity" class="quick-sale" on_sale="true"]
```

![A products rövidkód eredménye: az akciós termékek áthúzott régi és új árral, Akció! jelvénnyel.](./kepek/bolt-megjelenese-rovidkod-termekek.webp)

*A products rövidkód eredménye: az akciós termékek áthúzott régi és új árral, Akció! jelvénnyel.* (https://minta-bolt.hu/rovidkod-termekek/)

A képen a három akciós termék látszik: mindegyiken áthúzva a régi, vastagon az új ár. A rövidkód legfeljebb négyet mutatna, de csak ennyi akciós termék van.

### Kiemelt termékek

Legfeljebb négy kiemelt termék, soronként kettő. Mivel nincs `orderby`, az alapértelmezett sorrend érvényes:

```
[products limit="4" columns="2" visibility="featured"]
```

### Legkelendőbb termékek

A három legkelendőbb termék egy sorban:

```
[products limit="3" columns="3" best_selling="true"]
```

### Legújabb termékek

A legújabb termékek elöl, négy egy sorban. A termék azonosítója az új termékekkel nő, ezért az azonosító szerinti csökkenő sorrend adja az újdonságokat:

```
[products limit="4" columns="4" orderby="id" order="DESC" visibility="visible"]
```

### Kategória szerint

Két kategória termékei, két sorban, soronként négy:

```
[products limit="8" columns="4" category="hoodies, tshirts" cat_operator="AND"]
```

Ha éppen azokat a termékeket szeretnéd, amelyek nincsenek ezekben a kategóriákban, a `cat_operator` értéke legyen `NOT IN`:

```
[products limit="8" columns="4" category="hoodies, tshirts" cat_operator="NOT IN"]
```

Ha kevesebb termék felel meg a feltételnek, mint a `limit`, annyi jelenik meg, amennyi van.

### Tulajdonság szerint

Tegyük fel, hogy a termékeknek van egy „szezon” tulajdonsága (slug: `season`) „meleg” (`warm`) és „hideg” (`cold`) értékkel. Az összes meleg időre való termék három oszlopban, a legújabbal kezdve:

```
[products columns="3" attribute="season" terms="warm" orderby="date"]
```

Minden, ami nem meleg időre való:

```
[products columns="3" attribute="season" terms="warm" terms_operator="NOT IN"]
```

A `NOT IN` a mindkét szezonra alkalmas termékeket is kizárja. Ha minden hideg időre való terméket látni szeretnél, a közösekkel együtt, a `warm` helyett `cold` legyen az érték.

### Címke szerint

```
[products tag="hoodie"]
```

## Rendezés egyéni mező szerint

Az `orderby` előre megadott értékein kívül egyéni mező szerint is rendezhetsz, például ár szerint. Ehhez egy rövid PHP-kódrészlet kell a téma `functions.php` fájljában, amelyben a `meta_key` értéket a saját meződre kell cserélni. Ez fejlesztői feladat: kérj segítséget egy WordPress-fejlesztőtől, vagy egy kódrészlet-kezelő bővítményt használj.
