2019. 03. 25.
frissítve: 2022. 05. 31.
Olvasási idő: 7 perc
Plugout

Á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 és customer_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!

Változások követése

Frissítések

2022. május 31.

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é.