Tovább a tartalomhoz

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.

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.

https://minta-bolt.hu/wp-admin/edit.php?post_type=pewc_product_extra
A kiegészítők rendelésenkénti listája: cím, rendelés, termék, felhasználó és dátum oszlop

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.

A rendelésenkénti kiegészítő adatokat egy fájlba is kiviheted, például táblázatkezelőben való feldolgozáshoz.

  1. 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).
  2. Kattints az Exportálás gombra.
  3. A böngésző letölt egy CSV-fájlt a rendelések kiegészítő mezőinek adataival.
https://minta-bolt.hu/wp-admin/admin.php?page=export-product-extras
Az exportoldal az Exportálás gombbal

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.

  1. Nyisd meg a rendelést a WooCommerce → Rendelések listából.
  2. A módosítandó tétel sorában kattints a ceruza ikonra.
  3. A kiegészítő felirata és értéke szerkeszthetővé válik, írd át, majd mentsd a rendelést.
https://minta-bolt.hu/wp-admin/admin.php?page=wc-orders&action=edit&id=29
Egy rendelés tétele a Szín és Ajándékcsomagolás kiegészítőkkel

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;
}
$cimzett = '[email protected]';
$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:

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