Attach pdf to only specific email notification in Woocommerce












0















Attach pdf to ONLY woocomerce new order email



I am using this code but the PDF gets attched to every email in woocommerce



 add_filter( 'woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email', 10, 3);
function attach_terms_conditions_pdf_to_email ( $attachments , $email_id, $email_object ) {

$your_pdf_path = get_template_directory() . '/terms123.pdf';
$attachments = $your_pdf_path;

return $attachments;
}









share|improve this question





























    0















    Attach pdf to ONLY woocomerce new order email



    I am using this code but the PDF gets attched to every email in woocommerce



     add_filter( 'woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email', 10, 3);
    function attach_terms_conditions_pdf_to_email ( $attachments , $email_id, $email_object ) {

    $your_pdf_path = get_template_directory() . '/terms123.pdf';
    $attachments = $your_pdf_path;

    return $attachments;
    }









    share|improve this question



























      0












      0








      0








      Attach pdf to ONLY woocomerce new order email



      I am using this code but the PDF gets attched to every email in woocommerce



       add_filter( 'woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email', 10, 3);
      function attach_terms_conditions_pdf_to_email ( $attachments , $email_id, $email_object ) {

      $your_pdf_path = get_template_directory() . '/terms123.pdf';
      $attachments = $your_pdf_path;

      return $attachments;
      }









      share|improve this question
















      Attach pdf to ONLY woocomerce new order email



      I am using this code but the PDF gets attched to every email in woocommerce



       add_filter( 'woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email', 10, 3);
      function attach_terms_conditions_pdf_to_email ( $attachments , $email_id, $email_object ) {

      $your_pdf_path = get_template_directory() . '/terms123.pdf';
      $attachments = $your_pdf_path;

      return $attachments;
      }






      php wordpress woocommerce hook-woocommerce email-notifications






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 15 '18 at 6:26









      LoicTheAztec

      90.6k1365104




      90.6k1365104










      asked Nov 15 '18 at 4:42









      SoniaSonia

      8841511




      8841511
























          1 Answer
          1






          active

          oldest

          votes


















          1














          Update 2




          There is no "New order" notification for customers in Woocommerce… Depending on the payment methods enabled, the notifications to target can be "Customer On Hold Order" or/and Customer Processing Order" (see the section at the end)




          The following will enable PDF attachment for Customer On Hold Order email notification:



          add_filter( 'woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email', 10, 3 );
          function attach_terms_conditions_pdf_to_email ( $attachments , $email_id, $email_object ) {
          // Avoiding errors and problems
          if ( ! is_a( $order, 'WC_Order' ) || ! isset( $email_id ) ) {
          return $attachments;
          }

          // Only for "Customer On Hold" email notification (for customer)
          if( $email_id === 'customer_on_hold_order' ){

          $your_pdf_path = get_template_directory() . '/terms123.pdf';
          $attachments = $your_pdf_path;
          }

          return $attachments;
          }


          Code goes in function.php file of your active child theme (active theme). Tested and works.





          Depending on your enabled payment gateways in your installation, you can:



          1) You can use "Processing" emails instead, replacing this line:



          if( $email_id === 'customer_on_hold_order' ){


          by this:



          if( $email_id === 'customer_processing_order' ){


          2) You can use Both Customer "On Hold" and "Processing" emails, replacing this line:



          if( $email_id === 'customer_on_hold_order' ){


          by this:



          if( $email_id, array( 'customer_on_hold_order', 'customer_processing_order' ) ){





          share|improve this answer


























          • I want it for customer and not admin

            – Sonia
            Nov 15 '18 at 8:38











          • @Sonia I have updated my answer, with some explanations…

            – LoicTheAztec
            Nov 15 '18 at 9:03











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53312547%2fattach-pdf-to-only-specific-email-notification-in-woocommerce%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          Update 2




          There is no "New order" notification for customers in Woocommerce… Depending on the payment methods enabled, the notifications to target can be "Customer On Hold Order" or/and Customer Processing Order" (see the section at the end)




          The following will enable PDF attachment for Customer On Hold Order email notification:



          add_filter( 'woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email', 10, 3 );
          function attach_terms_conditions_pdf_to_email ( $attachments , $email_id, $email_object ) {
          // Avoiding errors and problems
          if ( ! is_a( $order, 'WC_Order' ) || ! isset( $email_id ) ) {
          return $attachments;
          }

          // Only for "Customer On Hold" email notification (for customer)
          if( $email_id === 'customer_on_hold_order' ){

          $your_pdf_path = get_template_directory() . '/terms123.pdf';
          $attachments = $your_pdf_path;
          }

          return $attachments;
          }


          Code goes in function.php file of your active child theme (active theme). Tested and works.





          Depending on your enabled payment gateways in your installation, you can:



          1) You can use "Processing" emails instead, replacing this line:



          if( $email_id === 'customer_on_hold_order' ){


          by this:



          if( $email_id === 'customer_processing_order' ){


          2) You can use Both Customer "On Hold" and "Processing" emails, replacing this line:



          if( $email_id === 'customer_on_hold_order' ){


          by this:



          if( $email_id, array( 'customer_on_hold_order', 'customer_processing_order' ) ){





          share|improve this answer


























          • I want it for customer and not admin

            – Sonia
            Nov 15 '18 at 8:38











          • @Sonia I have updated my answer, with some explanations…

            – LoicTheAztec
            Nov 15 '18 at 9:03
















          1














          Update 2




          There is no "New order" notification for customers in Woocommerce… Depending on the payment methods enabled, the notifications to target can be "Customer On Hold Order" or/and Customer Processing Order" (see the section at the end)




          The following will enable PDF attachment for Customer On Hold Order email notification:



          add_filter( 'woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email', 10, 3 );
          function attach_terms_conditions_pdf_to_email ( $attachments , $email_id, $email_object ) {
          // Avoiding errors and problems
          if ( ! is_a( $order, 'WC_Order' ) || ! isset( $email_id ) ) {
          return $attachments;
          }

          // Only for "Customer On Hold" email notification (for customer)
          if( $email_id === 'customer_on_hold_order' ){

          $your_pdf_path = get_template_directory() . '/terms123.pdf';
          $attachments = $your_pdf_path;
          }

          return $attachments;
          }


          Code goes in function.php file of your active child theme (active theme). Tested and works.





          Depending on your enabled payment gateways in your installation, you can:



          1) You can use "Processing" emails instead, replacing this line:



          if( $email_id === 'customer_on_hold_order' ){


          by this:



          if( $email_id === 'customer_processing_order' ){


          2) You can use Both Customer "On Hold" and "Processing" emails, replacing this line:



          if( $email_id === 'customer_on_hold_order' ){


          by this:



          if( $email_id, array( 'customer_on_hold_order', 'customer_processing_order' ) ){





          share|improve this answer


























          • I want it for customer and not admin

            – Sonia
            Nov 15 '18 at 8:38











          • @Sonia I have updated my answer, with some explanations…

            – LoicTheAztec
            Nov 15 '18 at 9:03














          1












          1








          1







          Update 2




          There is no "New order" notification for customers in Woocommerce… Depending on the payment methods enabled, the notifications to target can be "Customer On Hold Order" or/and Customer Processing Order" (see the section at the end)




          The following will enable PDF attachment for Customer On Hold Order email notification:



          add_filter( 'woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email', 10, 3 );
          function attach_terms_conditions_pdf_to_email ( $attachments , $email_id, $email_object ) {
          // Avoiding errors and problems
          if ( ! is_a( $order, 'WC_Order' ) || ! isset( $email_id ) ) {
          return $attachments;
          }

          // Only for "Customer On Hold" email notification (for customer)
          if( $email_id === 'customer_on_hold_order' ){

          $your_pdf_path = get_template_directory() . '/terms123.pdf';
          $attachments = $your_pdf_path;
          }

          return $attachments;
          }


          Code goes in function.php file of your active child theme (active theme). Tested and works.





          Depending on your enabled payment gateways in your installation, you can:



          1) You can use "Processing" emails instead, replacing this line:



          if( $email_id === 'customer_on_hold_order' ){


          by this:



          if( $email_id === 'customer_processing_order' ){


          2) You can use Both Customer "On Hold" and "Processing" emails, replacing this line:



          if( $email_id === 'customer_on_hold_order' ){


          by this:



          if( $email_id, array( 'customer_on_hold_order', 'customer_processing_order' ) ){





          share|improve this answer















          Update 2




          There is no "New order" notification for customers in Woocommerce… Depending on the payment methods enabled, the notifications to target can be "Customer On Hold Order" or/and Customer Processing Order" (see the section at the end)




          The following will enable PDF attachment for Customer On Hold Order email notification:



          add_filter( 'woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email', 10, 3 );
          function attach_terms_conditions_pdf_to_email ( $attachments , $email_id, $email_object ) {
          // Avoiding errors and problems
          if ( ! is_a( $order, 'WC_Order' ) || ! isset( $email_id ) ) {
          return $attachments;
          }

          // Only for "Customer On Hold" email notification (for customer)
          if( $email_id === 'customer_on_hold_order' ){

          $your_pdf_path = get_template_directory() . '/terms123.pdf';
          $attachments = $your_pdf_path;
          }

          return $attachments;
          }


          Code goes in function.php file of your active child theme (active theme). Tested and works.





          Depending on your enabled payment gateways in your installation, you can:



          1) You can use "Processing" emails instead, replacing this line:



          if( $email_id === 'customer_on_hold_order' ){


          by this:



          if( $email_id === 'customer_processing_order' ){


          2) You can use Both Customer "On Hold" and "Processing" emails, replacing this line:



          if( $email_id === 'customer_on_hold_order' ){


          by this:



          if( $email_id, array( 'customer_on_hold_order', 'customer_processing_order' ) ){






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 15 '18 at 9:13

























          answered Nov 15 '18 at 6:18









          LoicTheAztecLoicTheAztec

          90.6k1365104




          90.6k1365104













          • I want it for customer and not admin

            – Sonia
            Nov 15 '18 at 8:38











          • @Sonia I have updated my answer, with some explanations…

            – LoicTheAztec
            Nov 15 '18 at 9:03



















          • I want it for customer and not admin

            – Sonia
            Nov 15 '18 at 8:38











          • @Sonia I have updated my answer, with some explanations…

            – LoicTheAztec
            Nov 15 '18 at 9:03

















          I want it for customer and not admin

          – Sonia
          Nov 15 '18 at 8:38





          I want it for customer and not admin

          – Sonia
          Nov 15 '18 at 8:38













          @Sonia I have updated my answer, with some explanations…

          – LoicTheAztec
          Nov 15 '18 at 9:03





          @Sonia I have updated my answer, with some explanations…

          – LoicTheAztec
          Nov 15 '18 at 9:03




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53312547%2fattach-pdf-to-only-specific-email-notification-in-woocommerce%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Florida Star v. B. J. F.

          Danny Elfman

          Lugert, Oklahoma