ÁSZF és Adatkezelési nyilatkozat automatikus csatolása a WooCommerce rendelési e-mailekhez
Gyakran ismételt kérdés az, hogy hogyan lehet automatikusan mellékelni egy vagy több fájlt a rendelés visszaigazoló e-mailhez, mert például a vásárlónak el szeretnénk küldeni az ÁSZF-ünket, vagy valamilyen más dokumentumot. Léteznek fizetős pluginek (pl. kapásból találtam egyet 54 euróért), amelyek ezt megoldják, de nézzük meg, hogy meg tudjuk-e oldani ezt mi, plugin nélkül? Spoiler: igen.
Első körben kezdjük a szokásossal: hozzunk létre egy fájlt (add-attachments-to-order-emails.php
) az mu-plugins mappában, az alábbi tartalommal:
Ahogy láthatjuk, nem túl bonyolult a kód. Röviden nézzük át, hogy mit csinál:
- első lépésként felveszünk "engedélyezett állapotokat" (
customer_processing_order
éscustomer_on_hold_order
), - ha a rendelés éppen ezek valamelyikébe esik, akkor az
$attachment_path
útvonalon található fájlt (jelen esetben a/wp-content/uploads/test.txt
-t) csatolni fogja a levél mellékleteihez - ezt a funkciót pedig "hozzáköti" a
woocommerce_email_attachments
"eseményhez", tehát ez csak akkor fog lefutni, ha ez az esemény bekövetkezik
Fontos, hogy a hivatkozott fájl(ok) az elérési útvonalon létezzen(ek), hiszen ha nincsen(ek) ott, nem is fogja tudni csatolni az(oka)t a rendszer.
Ha több mellékletet is szeretnénk csatolni, azt is megtehetjük, méghozzá az alábbi módon:
Ahogy látod, nem lett sokkal bonyolultabb a kód: most már kettő útvonalat definiálunk (a két fájlunkét), és mindkettőt külön-külön hozzáadjuk az $attachments
tömbhöz.
Arra is van lehetőséged, hogy nem csak a processing_order
és az on-hold
(Fizetésre vár és Feldolgozás alatt) állapotokhoz kötöd a mellékletek kiküldését - válassz az alábbi listából, és kísérletezz kedvedre (aláhúzással szerepelnek a fenti kódrészletekben már használtak):
cancelled_order
customer_completed_order
customer_invoice
customer_new_account
customer_note
customer_on_hold_order
customer_processing_order
customer_reset_password
failed_order
new_order
Gratulálok: ma is sikerült eggyel csökkentened a pluginjaid számát, ezzel még ráadásul spóroltál is. Yeeee. :)
Kérdésed van, esetleg témát javasolnál? Írd meg!
Frissítések
Az engedélyezett állapotok - eddig egy elemből álló - listáját kibővítettem egy újabb taggal (customer_processing_order), így a sima Ctrl-C + Ctrl-V után is rögtön működni fog a kód, nem szükséges vaktában próbálkozni azzal, hogy melyik állapotot kell felvenni az engedélyezett állapotok közé.