Rendelések: kiegészítők kezelése
Kiegészítők rendelésenkénti listája és exportja, szerkesztés meglévő rendelésben, adatok kiolvasása és műveletek indítása kóddal.
Amikor a vásárló lead egy rendelést, a termékkiegészítők adatai a rendelés tételeihez kerülnek. Ez a fejezet azt mutatja meg, hol találod őket, hogyan exportálhatod és szerkesztheted őket, és hogyan használhatod fel kóddal. A kódrészleteket a sablon functions.php fájljába vagy egy kódrészlet-kezelő bővítménybe tedd.
Kiegészítők rendelésenként
Szekció neve “Kiegészítők rendelésenként”Minden leadott rendelésről, amelyben van kiegészítő mezős termék, egy külön bejegyzés is létrejön. Ez a bejegyzés a rendeléshez kapcsolódik, és a rendelés termékeinek összes kiegészítő mezőjét tárolja.
A bejegyzéseket a Termékkiegészítők → Add-Ons by Order menüpont alatt találod.

A listában a bejegyzés címe a termék neve és egy azonosító, mellette a rendelés száma, a termék és a dátum látszik. Ha még nem érkezett kiegészítős rendelés, a lista üres.
Exportálás CSV-fájlba
Szekció neve “Exportálás CSV-fájlba”A rendelésenkénti kiegészítő adatokat egy fájlba is kiviheted, például táblázatkezelőben való feldolgozáshoz.
- Nyisd meg a Termékkiegészítők → Rendelések exportálása oldalt (a lap címe Termékkiegészítők exportálása rendelésenként).
- Kattints az Exportálás gombra.
- A böngésző letölt egy CSV-fájlt a rendelések kiegészítő mezőinek adataival.

A képen az oldal egyetlen gombja az Exportálás, a fájl a kattintás után azonnal letöltődik.
Kiegészítők szerkesztése meglévő rendelésben
Szekció neve “Kiegészítők szerkesztése meglévő rendelésben”Egy már leadott rendelésben a kiegészítők felirata és értéke is módosítható a rendelés szerkesztőjében.
- Nyisd meg a rendelést a WooCommerce → Rendelések listából.
- A módosítandó tétel sorában kattints a ceruza ikonra.
- A kiegészítő felirata és értéke szerkeszthetővé válik, írd át, majd mentsd a rendelést.

A képen a tétel neve alatt látod a kiválasztott kiegészítőket. A szerkesztéssel csak a rendelésben tárolt érték változik, a vásárlói kosár és a termék beállításai nem.
Mezőtípusok elrejtése a rendelés adataiban
Szekció neve “Mezőtípusok elrejtése a rendelés adataiban”Ha egyes mezőtípusok, például a számítás mezők, nem kellenek a rendelés részleteibe, a pewc_hidden_group_types_in_order szűrővel elrejtheted őket:
function pelda_rejtett_mezotipusok_a_rendelesben( $mezotipusok ) { return array( 'calculation' );}add_filter( 'pewc_hidden_group_types_in_order', 'pelda_rejtett_mezotipusok_a_rendelesben' );A visszaadott tömb felülírja a bejövőt, ezért ha több típust akarsz elrejteni, mindet sorold fel benne. A függvénynevet cseréld egyedire. A kosárra és a pénztárra ugyanez a Kosár: szerkesztés és megjelenés fejezetben leírt másik szűrő vonatkozik.
A kiegészítők adatainak kiolvasása a rendelésből
Szekció neve “A kiegészítők adatainak kiolvasása a rendelésből”A rendelés tételeinek metaadataiban ott vannak a kiegészítők. A mező felirata a metakulcs, ezek előtt általában aláhúzásjel áll. A következő függvény bejárja egy rendelés tételeit, és vagy kilistázza az összes metaadatot, vagy egy megadott kulcs értékét adja vissza.
function pelda_kiegeszitok_a_rendelesbol( $rendeles_id, $metakulcs = false ) { $rendeles = wc_get_order( $rendeles_id ); if ( ! $rendeles ) { return array(); }
$eredmeny = array(); foreach ( $rendeles->get_items() as $tetel_id => $tetel ) { if ( $metakulcs ) { $eredmeny[ $tetel_id ] = $tetel->get_meta( $metakulcs ); } else { foreach ( $tetel->get_meta_data() as $meta ) { $adat = $meta->get_data(); $eredmeny[ $tetel_id ][ $adat['key'] ] = $adat['value']; } } } return $eredmeny;}A kulcs nélküli hívás tételenként minden metaadatot visszaad, a kulcsos hívás tételenként egy értéket. Kulcs megadása előtt nézd meg a pontos nevet egy meglévő rendelés tételének adataiban.
Művelet indítása, amikor a rendelés feldolgozódik
Szekció neve “Művelet indítása, amikor a rendelés feldolgozódik”A bővítmény a rendelés létrehozásakor minden kiegészítő mezőnél lefuttatja a pewc_after_create_product_extra műveletet. Három értéket kapsz: a rendelésenkénti bejegyzés azonosítóját, a rendelést és a mező adatait. Ezzel például egyedi e-mailt küldhetsz, ha egy adott mezőben adott érték szerepel.
function pelda_kiegeszito_ertesites( $bejegyzes_id, $rendeles, $mezo ) { $keresett_mezo = 26; $keresett_ertek = '__checked__';
if ( (int) $mezo['field_id'] !== $keresett_mezo || $mezo['value'] !== $keresett_ertek ) { return; }
$targy = 'Ajándékcsomagolást kértek: #' . $rendeles->get_id(); $uzenet = 'A(z) ' . $rendeles->get_id() . '. számú rendelésben ajándékcsomagolást kértek.';
wc_mail( $cimzett, $targy, wpautop( $uzenet ) );}add_action( 'pewc_after_create_product_extra', 'pelda_kiegeszito_ertesites', 10, 3 );Átírandó részek:
| Érték | Mit csinál |
|---|---|
$keresett_mezo |
A vizsgált kiegészítő mező azonosítója. |
$keresett_ertek |
A keresett érték. Jelölőnégyzetnél a bejelölt állapot értéke __checked__. |
$cimzett, $targy, $uzenet |
Az e-mail címzettje, tárgya és szövege. Élesítés előtt a saját címedre állítsd. |
A példa egyetlen mezőt és egyetlen értéket vizsgál. Más feltételhez a függvény elejét kell átírnod. A mező azonosítóját a mező szerkesztőjében látod.
Készült: