# Mezőparaméterek: dinamikus értékek, egyéni paraméter, szűrés mentés előtt

> Szám mező minimuma és maximuma opcióból, saját paraméter felvétele a mezőkhöz, és a mező paramétereinek módosítása mentés előtt.

Ez a fejezet fejlesztőknek szól: PHP-kódrészletekkel bővíted a mezők beállításait. A kódot a szokásos módon add hozzá (kódrészlet-bővítmény vagy a gyermektéma `functions.php` fájlja).

## Szám mező minimuma és maximuma egy másik mező opciójából

Cél: a **Szám** mező legkisebb és legnagyobb értéke attól függ, melyik opciót választja a vásárló egy **Választómezőben**. A **Szám** mezőn nem kell semmit átállítani. A **Választómező** minden opciója két plusz oszlopot kap (Min és Max), a kód a mezők azonosítóját két függvényből veszi, ezeket írd át a sajátjaidra.

A kódrészlet kapcsai:

| Kapocs | Típus | Feladata |
|---|---|---|
| `pewc_after_option_params` | akció | Min és Max beviteli mezőt tesz az opciósorokba; az értékek az opció `min_width` és `max_width` kulcsán mentődnek. |
| `pewc_after_option_params_titles` | akció | Az új oszlopok fejlécét adja ki. |
| `pewc_option_attribute_string` | szűrő | Az opciókhoz `data-min-value` és `data-max-value` attribútumot ad a termékoldalon. |
| `wp_footer` | akció | Csak termékoldalon jQuery-szkriptet ad ki: a választómező váltásakor beállítja a szám mező burkolóján a `data-field-minval` és `data-field-maxval` attribútumot, a beviteli mezőn pedig a `min` és `max` értéket. |

## Egyéni paraméter felvétele a mezőkhöz

Saját paramétert (például cikkszámot) is hozzáadhatsz a mezők beállításaihoz, és eljuttathatod a kosárba és a rendelés adminisztrátori nézetébe. A kód négy kapcsot használ:

1. `pewc_end_product_extra_field` (akció, 4 paraméter): a mező beállításai közé kiír egy szövegmezőt a paraméter nevével, előtöltve a meglévő értékkel.
2. `pewc_item_params` (szűrő, 2 paraméter): a paraméter nevét felveszi a mezőparaméterek listájába, így mentésre kerül.
3. `pewc_filter_end_add_cart_item_data` (szűrő, 5 paraméter): az értéket a kosárelem adataiba másolja a csoport és a mező azonosítója szerint.
4. `pewc_itemmeta_admin_item` (szűrő, 3 paraméter): az értéket hozzáfűzi a tételhez az adminisztrációs rendelésnézetben.

A kódban a `your_param_name` helyére írd a saját paraméterednek a nevét. Figyelj rá: a kosáradat-szűrő mintakódja fixen az `sku` kulccsal dolgozik, más paraméternév esetén ezeket a hivatkozásokat is át kell írnod.

## Paraméterek módosítása mentés előtt

A `pewc_before_update_field_all_params` szűrővel a mező összes paraméterét megváltoztathatod, mielőtt a bővítmény elmenti őket. Két paramétert kap: a mező paramétereinek tömbjét (`$all_params`) és a mező azonosítóját (`$field_id`), és a módosított tömböt kell visszaadnia. A szűrőt `add_filter()`-rel regisztráld 10-es prioritással, 2 elfogadott paraméterrel.

Példa: a 4991-es azonosítójú **Számítás** mezőt fix díjasra állítja, vagyis a `field_flatrate` paramétert 1-re teszi:

```php
function prefix_set_flat_rate( $all_params, $field_id ) {
	if ( 4991 === (int) $field_id ) {
		$all_params['field_flatrate'] = 1;
	}
	return $all_params;
}
add_filter( 'pewc_before_update_field_all_params', 'prefix_set_flat_rate', 10, 2 );
```

A szűrő a 3.4.3-as vagy újabb kiadástól érhető el. A **Számítás** és **Információ** típusú mezőknél a bővítmény a fix díjat magától kikapcsolja, mert ezeknél az **Árazás** fül rejtett.
