Ugrás a tartalomra
Fejezetek

Útmutatók

Horgok, akciók és szűrők

Rövid bevezetés a WordPress és a WooCommerce horgaiba, három egyszerű példával.

A horgok (hookok), az akciók és a szűrők segítségével a WooCommerce alapkódjának módosítása nélkül változtathatod meg és bővítheted a boltod működését. Ez a fejezet rövid áttekintést ad róluk. Egyedi akciók és szűrők írásához haladó PHP- és WooCommerce-ismeret kell, ezért ha nem vagy fejlesztő, bízd a munkát egy WordPress/WooCommerce fejlesztőre.

Mi a horog?

A horog egy olyan pont a WordPress vagy a WooCommerce működésében, amelyhez saját kódot kapcsolhatsz. A horog gyűjtőfogalom: ide tartoznak az akciók és a szűrők is.

Példa: a woocommerce_thankyou akció a pénztár megrendelés utáni oldalán fut le. Ha rögtön a vásárlás után akarsz valamit csinálni, például egyéni visszaigazolást küldeni, a függvényedet erre a horogra kapcsolhatod:

function egyedi_koszonoszoveg_akcio($order_id) {
    // Egyéni visszaigazolás küldése vagy más teendő
}

add_action('woocommerce_thankyou', 'egyedi_koszonoszoveg_akcio');

A függvény megkapja a WooCommerce-től a rendelés azonosítóját.

Akciók

Az akció olyan horog, amelyre kapcsolt függvény a WordPress futásának egy meghatározott pontján vagy egy esemény bekövetkeztekor lefut. Valami extrát csinál: például köszöntő e-mailt küld, amikor új felhasználó regisztrál.

Példa: a woocommerce_before_cart akció közvetlenül a kosár tartalma előtt fut. Ide tehetsz egy üzenetet a kosár oldal tetejére:

function egyedi_kosar_uzenet() {
    echo '<p>Ne felejtsd el beváltani a kuponodat a pénztár előtt!</p>';
}

add_action('woocommerce_before_cart', 'egyedi_kosar_uzenet');

Szűrők

A szűrő adatot módosít. Amikor egy adat áthalad a szűrőn, a rá kapcsolt függvények feldolgozzák, mielőtt visszaadódik vagy megjelenik. Így változtathatod meg például az árak megjelenítését, a címeket vagy egy gomb alapértelmezett szövegét. A szűrő nem újabb műveletet indít, hanem átalakítja az adatot.

Példa: a woocommerce_sale_flash szűrővel átírhatod a leárazott termékeken megjelenő jelvény szövegét:

function egyedi_akcios_jelveny() {
    return '<span class="onsale">Korlátozott ajánlat</span>';
}

add_filter('woocommerce_sale_flash', 'egyedi_akcios_jelveny');

Ez a függvény az alapértelmezett akciós jelvényt cseréli a „Korlátozott ajánlat” szövegre minden leárazott terméken.

Az akciók és szűrők általános szerkezete

Az akcióra a függvényedet az add_action hívással kapcsolod. A horog nevét a WordPress és a WooCommerce a kódjában a do_action('akcio_neve'); hívással futtatja le, és ekkor indul el a rákapcsolt függvényed:

add_action( 'akcio_neve', 'sajat_fuggveny_neve' );

function sajat_fuggveny_neve() {
    // Ide kerül a saját kódod
}

A szűrőt az add_filter hívással használod. A WooCommerce a kódjában az apply_filters( 'szuro_neve', $valtozo ); hívással adja át az adatot. A függvényed megkapja a változót, módosíthatja, és mindig vissza kell adnia egy értéket:

add_filter( 'szuro_neve', 'sajat_fuggveny_neve' );

function sajat_fuggveny_neve( $valtozo ) {
    // Ide kerül a saját kódod
    return $valtozo;
}

Ha a szűrő függvénye nem ad vissza értéket, az adat elvész, és az oldalon hiányozhat a módosított elem.

Hova írd a saját kódot?

A saját kódot kétféleképpen helyezheted el:

  • egy gyermektéma functions.php fájljában;
  • egy kódrészlet-kezelő bővítménnyel, például a Code Snippets nevű bővítménnyel.

Nagyobb téma- vagy bővítményfrissítésnél a gyermektéma védi meg a módosításaidat, ezért az első módszer tisztább megoldás.

Példa: a pénztár mezőinek módosítása

A pénztár mezőinek módosítása jól mutatja, mire használható együtt az akció és a szűrő:

  • Akcióval új mezőt adhatsz a pénztárhoz, és ezt az új mezőt hozzáadhatod a rendeléshez.
  • Szűrővel átírhatod a meglévő mezők címkéit és helykitöltő szövegeit, egy kötelező mezőt választhatóvá tehetsz, és eltávolíthatsz meglévő mezőket.

A WooCommerce teljes horog- és API-listája a fejlesztői dokumentációban található. A horgokról és a szűrőkről további kódrészlet-példákat a fejlesztői oldalakon találsz. A boltvezetőnek elég tudnia, hogy ilyen lehetőség létezik, és hogy a támogatás nem terjed ki az egyedi kódra.

Mire figyelj

  • A saját kód hibája az egész boltot leállíthatja, ezért élő boltra csak kipróbált kódot tegyél, és előtte készíts biztonsági mentést (Biztonsági mentés).
  • Ha hiba miatt nem éred el az admin felületet, a bővítmények kikapcsolása segíthet.
  • Ha egyedi működést szeretnél, de nem érzed magad otthon a kódban, fordulj egy WooCommerce-fejlesztőhöz vagy ügynökséghez.