WooCommerce PDF príloha email objednávky – kompletný návod
WooCommerce PDF príloha email objednávky je riešenie, ktoré umožňuje automaticky pridať obchodné podmienky alebo formulár na odstúpenie od zmluvy priamo do potvrdzujúceho emailu zákazníkovi.
Ak prevádzkujete e-shop, pravdepodobne potrebujete, aby zákazník po nákupe obdržal aj dôležité dokumenty v PDF formáte. WooCommerce túto funkciu štandardne neobsahuje, no dá sa jednoducho doprogramovať.
V tomto návode si ukážeme, ako nastaviť WooCommerce PDF prílohu email objednávky pomocou krátkeho PHP kódu.
Prečo riešiť WooCommerce PDF prílohu email objednávky
Pridanie PDF dokumentov do emailu objednávky má viacero výhod a povinností:
- splnenie legislatívnych povinností
- automatické doručenie obchodných podmienok
- profesionálnejšia komunikácia
- menej otázok na podporu
WooCommerce PDF príloha email objednávky zabezpečí, že dokumenty budú odoslané automaticky pri zmene stavu objednávky.
Krok 1: Nahraj PDF dokumenty
Nahraj dokumenty do:
/wp-content/uploads/dokumenty/Príklad:
obchodne-podmienky.pdf
odstupenieodzmluvy.pdfKrok 2: Pridaj PHP kód
Nižšie je funkčný kód pre WooCommerce PDF prílohu email objednávky:
/**
* --------------------------------------------------------------
* PRIDANIE PDF PRÍLOH DO WOOCOMMERCE EMAILOV
* --------------------------------------------------------------
*
* ČO TENTO KÓD ROBÍ?
* --------------------------------------------------------------
* Tento kód zabezpečí, že keď WooCommerce odošle zákazníkovi email
* po objednávke, automaticky sa k nemu priložia 2 PDF dokumenty.
*
* KONKRÉTNE EMAILY:
* - customer_processing_order → keď je objednávka potvrdená
* - customer_on_hold_order → keď sa čaká na platbu
*
* AKÉ PDF SA PRILOŽIA?
* - obchodne-podmienky.pdf
* - odstupenieodzmluvy.pdf
*
* AKO TO FUNGUJE?
* --------------------------------------------------------------
* WooCommerce má tzv. "filter hook".
* Filter je miesto, kde vieme zachytiť dáta ešte predtým,
* než sa email odošle, a môžeme ich upraviť.
*
* My zachytíme prílohy emailu a doplníme k nim naše PDF súbory.
*/
/**
* --------------------------------------------------------------
* KROK 1: NAPOJENIE NA WOOCOMMERCE FILTER
* --------------------------------------------------------------
*
* add_filter() = hovoríme WordPressu:
* „Keď sa bude pripravovať email vo WooCommerce,
* zavolaj našu funkciu a dovoľ jej upraviť prílohy.“
*
* PARAMETRE:
*
* 'woocommerce_email_attachments'
* → názov filtra, ktorý WooCommerce používa na prílohy emailu
*
* 'pridat_pdf_do_emailu'
* → názov našej funkcie, ktorá sa má spustiť
*
* 10
* → priorita (10 je štandardná hodnota)
*
* 4
* → počet argumentov, ktoré WooCommerce našej funkcii pošle
*/
add_filter( 'woocommerce_email_attachments', 'pridat_pdf_do_emailu', 10, 4 );
/**
* --------------------------------------------------------------
* KROK 2: FUNKCIA
* --------------------------------------------------------------
*
* Táto funkcia sa spustí VŽDY,
* keď WooCommerce ide odoslať akýkoľvek email.
*
* PARAMETRE, ktoré dostávame:
*
* $attachments → pole (array) existujúcich príloh
* $email_id → identifikátor emailu (napr. customer_processing_order)
* $order → objekt objednávky
* $email → objekt samotného emailu
*/
function pridat_pdf_do_emailu( $attachments, $email_id, $order, $email ) {
/**
* ----------------------------------------------------------
* BEZPEČNOSTNÁ KONTROLA
* ----------------------------------------------------------
*
* is_a( $order, 'WC_Order' )
*
* Overíme, či premenná $order je skutočne objednávka.
*
* Prečo?
* Pretože niektoré emaily vo WooCommerce
* nemusia mať objednávku (napr. systémové emaily).
*
* Ak by sme to nekontrolovali,
* mohlo by dôjsť k PHP chybe.
*/
if ( ! is_a( $order, 'WC_Order' ) ) {
// Ak to nie je objednávka,
// nič nemeníme a vrátime pôvodné prílohy.
return $attachments;
}
/**
* ----------------------------------------------------------
* KONTROLA TYPU EMAILU
* ----------------------------------------------------------
*
* $email_id obsahuje typ emailu.
*
* My chceme pridať PDF iba do:
* - customer_processing_order
* - customer_on_hold_order
*
* Preto používame podmienku OR ( || )
* → ak je splnená aspoň jedna z nich
*/
if ( $email_id === 'customer_processing_order' || $email_id === 'customer_on_hold_order' ) {
/**
* ------------------------------------------------------
* ZÍSKANIE CESTY K UPLOAD PRIEČINKU
* ------------------------------------------------------
*
* wp_upload_dir() vráti pole informácií o uploads priečinku.
*
* Napríklad:
* /home/server/domains/pomocswebom.sk/wp-content/uploads
*/
$upload_dir = wp_upload_dir();
/**
* $upload_dir['basedir']
*
* → fyzická cesta na serveri
*
* NIE JE to URL.
* Je to skutočná serverová cesta,
* ktorú PHP potrebuje na prácu so súbormi.
*/
/**
* ------------------------------------------------------
* VYTVORENIE CEZTY K PDF SÚBOROM
* ------------------------------------------------------
*
* Skladáme cestu:
*
* základná upload cesta
* + /dokumenty/
* + názov súboru
*/
$cesta_obchodne_podmienky =
$upload_dir['basedir'] . '/dokumenty/obchodne-podmienky.pdf';
$cesta_odstupenie =
$upload_dir['basedir'] . '/dokumenty/odstupenieodzmluvy.pdf';
/**
* ------------------------------------------------------
* KONTROLA EXISTENCIE SÚBORU
* ------------------------------------------------------
*
* file_exists()
*
* Skontroluje, či súbor fyzicky existuje na serveri.
*
* Prečo?
* Ak by sme priložili neexistujúci súbor,
* email by mohol spôsobiť chybu.
*/
if ( file_exists( $cesta_obchodne_podmienky ) ) {
/**
* $attachments[] =
*
* Týmto pridávame nový prvok do poľa príloh.
*
* [] znamená:
* „pridaj na koniec poľa“
*/
$attachments[] = $cesta_obchodne_podmienky;
}
if ( file_exists( $cesta_odstupenie ) ) {
$attachments[] = $cesta_odstupenie;
}
}
/**
* ----------------------------------------------------------
* DÔLEŽITÉ!
* ----------------------------------------------------------
*
* Filter MUSÍ niečo vrátiť.
*
* Vždy vraciame pole príloh —
* buď pôvodné, alebo rozšírené o naše PDF.
*/
return $attachments;
}Ako funguje WooCommerce PDF príloha email objednávky
Tento kód využíva filter:
woocommerce_email_attachmentsWooCommerce pri odosielaní emailu umožňuje upraviť prílohy. Funkcia:
- skontroluje typ emailu
- zistí cestu k PDF dokumentom
- overí ich existenciu
- pridá ich ako prílohu
WooCommerce PDF príloha email objednávky sa aktivuje pri stavoch:
- Spracováva sa
- Čaká sa na platbu
Testovanie funkčnosti
Po implementácii:
- vytvor testovaciu objednávku
- zmeň jej stav
- skontroluj prijatý email
Ak je všetko správne nastavené, WooCommerce PDF príloha email objednávky bude fungovať automaticky.
Zhrnutie
WooCommerce PDF príloha email objednávky je jednoduché, ale veľmi efektívne riešenie, ktoré:
✔ automatizuje odosielanie dokumentov
✔ zvyšuje dôveryhodnosť e-shopu
✔ pomáha splniť legislatívne požiadavky
✔ nevyžaduje žiadny platený plugin
Stačí nahrať PDF, vložiť kód a otestovať email.



