{"id":29539,"date":"2025-12-30T12:03:38","date_gmt":"2025-12-30T12:03:38","guid":{"rendered":"https:\/\/makemehappy.sk\/?p=29539"},"modified":"2025-12-30T12:14:12","modified_gmt":"2025-12-30T12:14:12","slug":"pridanie-prilohy-k-e-mailu-po-objednavke-vo-woocommerce","status":"publish","type":"post","link":"https:\/\/makemehappy.sk\/en\/pridanie-prilohy-k-e-mailu-po-objednavke-vo-woocommerce\/","title":{"rendered":"Adding an attachment to an email after an order in WooCommerce"},"content":{"rendered":"<section class=\"wp-block-greenshift-blocks-row alignfull gspb_row gspb_row-id-gsbp-183d290\" id=\"gspb_row-id-gsbp-183d290\"><div class=\"gspb_row__content\"> \n\n\n<div class=\"wp-block-greenshift-blocks-row-column gspb_row__col--12 gspb_col-id-gsbp-69fe6f1\" id=\"gspb_col-id-gsbp-69fe6f1\">\n<p class=\"wp-block-paragraph\">This snippet allows you to <strong>automatically attach a file to WooCommerce emails sent after an order is placed or completed<\/strong>. It is commonly used to send documents such as <strong>Terms and Conditions, return policies, user manuals, or informational PDFs<\/strong> to customers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The attachment is added <strong>only to specific email types<\/strong> (for example, \u201cProcessing order\u201d or \u201cCompleted order\u201d), and the file is loaded directly from the WordPress <code>uploads<\/code> Directory. The snippet also checks whether the file exists, preventing email errors caused by missing attachments.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This solution is ideal for stores that need to meet <strong>legal requirements<\/strong> or want to reliably deliver important documents to customers without manual handling.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/makemehappy.sk\/en\/snippets\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to inset the code?<\/a><\/div>\n<\/div>\n<\/div>\n <\/div><\/section>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">PHP<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy of\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/\/ pridanie pr\u00edlohy k e-mailu po objedn\u00e1vke\nadd_filter('woocommerce_email_attachments', 'pridat_prilohu_po_objednavke', 10, 3);\n\nfunction pridat_prilohu_po_objednavke($attachments, $email_id, $order) {\n    \/\/ Prid\u00e1va\u0165 pr\u00edlohu iba k ur\u010dit\u00fdm typom e-mailov\n    if ($email_id === 'customer_processing_order' || $email_id === 'customer_completed_order') {\n        \/\/ Z\u00edska\u0165 cestu do adres\u00e1ra uploads\n        $upload_dir = wp_upload_dir(); \n        $subor_cesta = $upload_dir&#91;'basedir'&#93; . '\/XXXXXXXXXXXXXX.pdf';\n\n        \/\/ Skontrolova\u0165, \u010di s\u00fabor existuje\n        if (file_exists($subor_cesta)) {\n            $attachments[] = $subor_cesta; \/\/ Prida\u0165 cestu k s\u00faboru do pr\u00edloh\n        }\n    }\n\n    return $attachments;\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\/\/ pridanie pr\u00edlohy k e-mailu po objedn\u00e1vke<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">add_filter<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&#39;woocommerce_email_attachments&#39;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&#39;pridat_prilohu_po_objednavke&#39;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #B5CEA8\">10<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #B5CEA8\">3<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">pridat_prilohu_po_objednavke<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">$attachments<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #9CDCFE\">$email_id<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #9CDCFE\">$order<\/span><span style=\"color: #D4D4D4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\">\/\/ Prid\u00e1va\u0165 pr\u00edlohu iba k ur\u010dit\u00fdm typom e-mailov<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #9CDCFE\">$email_id<\/span><span style=\"color: #D4D4D4\"> === <\/span><span style=\"color: #CE9178\">&#39;customer_processing_order&#39;<\/span><span style=\"color: #D4D4D4\"> || <\/span><span style=\"color: #9CDCFE\">$email_id<\/span><span style=\"color: #D4D4D4\"> === <\/span><span style=\"color: #CE9178\">&#39;customer_completed_order&#39;<\/span><span style=\"color: #D4D4D4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #6A9955\">\/\/ Z\u00edska\u0165 cestu do adres\u00e1ra uploads<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">$upload_dir<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #DCDCAA\">wp_upload_dir<\/span><span style=\"color: #D4D4D4\">(); <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">$subor_cesta<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">$upload_dir<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #CE9178\">&#39;basedir&#39;<\/span><span style=\"color: #D4D4D4\">&#93; <\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&#39;\/XXXXXXXXXXXXXX.pdf&#39;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #6A9955\">\/\/ Skontrolova\u0165, \u010di s\u00fabor existuje<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #DCDCAA\">file_exists<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">$subor_cesta<\/span><span style=\"color: #D4D4D4\">)) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #9CDCFE\">$attachments<\/span><span style=\"color: #D4D4D4\">[] = <\/span><span style=\"color: #9CDCFE\">$subor_cesta<\/span><span style=\"color: #D4D4D4\">; <\/span><span style=\"color: #6A9955\">\/\/ Prida\u0165 cestu k s\u00faboru do pr\u00edloh<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">$attachments<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<section class=\"wp-block-greenshift-blocks-row alignfull gspb_row gspb_row-id-gsbp-d72b2a7\" id=\"gspb_row-id-gsbp-d72b2a7\"><div class=\"gspb_row__content\"> \n\n\n<div class=\"wp-block-greenshift-blocks-row-column gspb_row__col--12 gspb_col-id-gsbp-b035db8\" id=\"gspb_col-id-gsbp-b035db8\">\n<h2 class=\"wp-block-heading\" id=\"customer-emails-email-id\">Customer Emails <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-1-color\">$email_id<\/mark><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">These email IDs are used for <strong>emails sent to customers<\/strong>. They are commonly used when adding attachments, modifying email content, or applying conditional logic based on the email type.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>customer_new_account\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">- New customer account created<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>customer_processing_order\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">- Order received \/ processing<br>\ud83d\udc49 <strong>Most common email sent after successful payment<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>customer_completed_order\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">- Order completed<br>\ud83d\udc49 Ideal for manuals, terms &amp; conditions, certificates, or final documents<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>customer_on_hold_order\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">- Order on hold (waiting for payment)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>customer_cancelled_order\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">- Order cancelled<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>customer_refunded_order\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">- Order refunded<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>customer_invoice\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">- Customer invoice \/ payment request<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>customer_note\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">- Customer note added by the store admin<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>customer_reset_password\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">- Password reset email<\/p>\n<\/div>\n <\/div><\/section>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":29535,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_gspb_post_css":"#gspb_row-id-gsbp-183d290,#gspb_row-id-gsbp-d72b2a7{justify-content:space-between;margin-top:0;margin-bottom:0;display:flex;flex-wrap:wrap}#gspb_row-id-gsbp-183d290>.gspb_row__content{display:flex;justify-content:space-between;margin:0 auto;width:100%;flex-wrap:wrap}.gspb_row{position:relative}div[id^=gspb_col-id]{box-sizing:border-box;position:relative;padding:var(--gs-row-column-padding, 15px min(3vw, 20px))}#gspb_col-id-gsbp-96f6582.gspb_row__col--12{width:100%}@media (max-width:575.98px){#gspb_col-id-gsbp-96f6582.gspb_row__col--12{width:100%}}#gspb_col-id-gsbp-69fe6f1.gspb_row__col--12{width:100%}@media (max-width:575.98px){#gspb_col-id-gsbp-69fe6f1.gspb_row__col--12{width:100%}}#gspb_row-id-gsbp-d72b2a7>.gspb_row__content{display:flex;justify-content:space-between;margin:0 auto;width:100%;flex-wrap:wrap}body.gspb-bodyfront #gspb_row-id-gsbp-183d290>.gspb_row__content,body.gspb-bodyfront #gspb_row-id-gsbp-d72b2a7>.gspb_row__content{width:var(--theme-container-width, 1200px);max-width:var(--theme-normal-container-max-width, 1200px)}#gspb_col-id-gsbp-f194aec.gspb_row__col--12{width:100%}@media (max-width:575.98px){#gspb_col-id-gsbp-f194aec.gspb_row__col--12{width:100%}}#gspb_col-id-gsbp-b035db8.gspb_row__col--12{width:100%}@media (max-width:575.98px){#gspb_col-id-gsbp-b035db8.gspb_row__col--12{width:100%}}","footnotes":""},"categories":[105],"tags":[],"class_list":["post-29539","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-snippet"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/posts\/29539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/comments?post=29539"}],"version-history":[{"count":9,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/posts\/29539\/revisions"}],"predecessor-version":[{"id":29550,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/posts\/29539\/revisions\/29550"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/media\/29535"}],"wp:attachment":[{"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/media?parent=29539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/categories?post=29539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/tags?post=29539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}