# Tudnivalók és fejlesztőknek

> Űrlapkészítési szabályok, támogatott mezők, Store API és a fejlesztői szűrők.

## Szabályok az űrlapokhoz

- Az árak a Gravity Forms **Termék** és **Opció** mezőibe tartoznak. A termék normál ára a kiindulási ár, kell hozzá érték, 0, ha az űrlap határozza meg a teljes árat.
- Az **Összegmező** nem kötelező. A termékoldal saját összegeket mutat, az **Összegmező** beállítás elrejti az űrlap saját összegmezőjét.
- A Gravity Forms összegmezői nem kerülnek a kosártételre és a rendelésre, mert a tétel ára már tartalmazza az opciókat, a bejegyzés pedig elmenti az összeget. Ha mégis listázni szeretnéd őket, használd ezt: `add_filter( 'woocommerce_gforms_hide_total_field', '__return_false' );`
- A termékre csatolt űrlapok a kosárba tétellel együtt kerülnek beküldésre, ezért az űrlap AJAX beállítása és a visszaigazolás a termékoldalon nem érvényesül.
- A Gravity Forms honeypot védelme, hivatkozásfelismerése és reCAPTCHA v3 védelme a termékekre csatolt űrlapokon ki van kapcsolva. A CAPTCHA mező megakadályozza a kosárba tételt, ezért csak a termékoldalon kívüli űrlapokon használd.
- Az Opció mezőt egy Termék mezőhöz kell rendelni. Ha a vásárló nem választ mennyiséget a Termék mezőnél, jelöld be a **Mennyiségmező letiltása** lehetőséget.
- Új űrlapot először egy oldalon próbálj ki. Ami ott hibátlanul beküldhető, az a terméken is ugyanúgy működik.

## Támogatott mezők

| Csoport | Mezők |
|---|---|
| Alap | Egysoros szöveg, Bekezdés, Legördülő lista, Többszörös választás, Szám, Jelölőnégyzetek, Rádiógombok, Rejtett, HTML, Szakasz |
| Speciális | Név, Dátum, Idő, Telefon, Cím, Weboldal, E-mail, Fájlfeltöltés, Lista (a rendelésen szövegként), Ismétlődő (Gravity Forms 3.2 és újabb, soronként egy tétel), Oldal |
| Árazás | Termék, Opció, Mennyiség, Szállítás, Összeg |

A Gravity Perks közül a Populate Anything, a Conditional Pricing, a Limit Choices, a Nested Forms és sok más is működik. Ha egy kiegészítőt szeretnél kipróbálni, add hozzá az űrlaphoz, és próbáld ki egy terméken.

## Store API

A termék űrlapja a WooCommerce Store API termékválaszában jelenik meg az `extensions["gravityforms-product-addons"]` alatt. Tartalmazza az űrlap azonosítóját, és minden kitöltendő mezőnél az azonosítót, a típust, a címkét, a kötelezőséget, a küldendő beviteli mezőket, a választós mezőknél pedig a pontos küldendő értéket.

```
GET /wp-json/wc/store/v1/products/123
```

A tételt a `gravity_form_values` mezőben adott űrlapértékekkel add a kosárhoz, a Gravity Forms beviteli mezőinek nevei szerint:

```
POST /wp-json/wc/store/v1/cart/add-item
{
  "id": 123,
  "quantity": 1,
  "gravity_form_values": {
    "input_1": "Boldog szülinapot",
    "input_2": "Kézírás"
  }
}
```

Az értékek a termékoldaléval azonos ellenőrzésen és árazáson mennek át. Hiányzó vagy érvénytelen érték 400-as választ ad, amely megnevezi az érintett mezőket. A Fájlfeltöltés mezők fájljait a termékoldalon lehet megadni.

## Szűrők

| Szűrő | Mire jó |
|---|---|
| `woocommerce_gforms_hide_total_field` | Hamisat adj vissza, hogy az összegmezők megjelenjenek a kosártételeken és a rendeléseken. |
| `woocommerce_gforms_strip_meta_html` | Hamisat adj vissza, hogy a mező HTML-je megmaradjon a rendelésen, például a Lista mező táblázata. |
| `woocommerce_gforms_field_display_text` | Megváltoztatja a mező szövegét a tétel alatt a kosárban és a rendelésen. |
| `woocommerce_gforms_item_meta_rows` | Megváltoztatja a tétel választássorait. Az ötödik paraméter, a `$context`, `'cart'` vagy `'order'`. |
| `woocommerce_gforms_cart_edit_redirect` | Megváltoztatja, hová kerül a vásárló a szerkesztett kosártétel mentése után. |
| `woocommerce_gforms_disable_form_antispam` | Hamisat adj vissza, hogy a Gravity Forms spamvédelme a termékre csatolt űrlapokon is működjön. |
| `woocommerce_gforms_form_output_hook` | Változatos termékeknél az űrlapot másik WooCommerce horogra helyezi. |

A `wc-gforms-hide-from-email` CSS-osztályú mező kimarad az e-mailekből, a `wc-gforms-hide-from-email-and-admin` osztályú a rendelésről is.
