Ú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.phpfá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.