Support » Plugin: WooCommerce PDF Invoices & Packing Slips » add fields in the simple template from WooCommerce Checkout Manager

Viewing 15 replies - 1 through 15 (of 21 total)
  • Plugin Author Ewout

    (@pomegranate)

    Yes, you can add any custom meta fields, you need a bit of php in the template:

    <?php
    $yourfield = get_post_meta($wpo_wcpdf->export->order->id,'Your field name',true);
    if (isset($yourfield)) {
    	echo $yourfield;
    }
    ?>

    where you replace ‘Your field name’ with the name of your checkout field of course :o)

    I tried this

    <?php
    $email = get_post_meta($wpo_wcpdf->export->order->id,’billing_email’,true);
    if (isset($email)) {
    echo ‘
    email:’.$email;
    }
    ?>

    no error but does not retrieve the email

    Plugin Author Ewout

    (@pomegranate)

    billing email is not a custom field, but a default woocommerce checkout field. I have a built in function to call the billing email:

    <?php $wpo_wcpdf->billing_email(); ?>

    the default woocommerce meta fields have a leading underscore, so it’s _billing_email if you wanted to call it with the previously posted function:

    <?php
    $yourfield = get_post_meta($wpo_wcpdf->export->order->id,'_billing_email',true);
    if (isset($yourfield)) {
    	echo $yourfield;
    }
    ?>

    email works, I added a new field in checkout-manager

    label Placeholder Choose Type Abbreviation
    Partita IVA Partita IVA Text Input piva

    tried

    <?php
    $yourfield = get_post_meta($wpo_wcpdf->export->order->id,’_piva’,true);
    if (isset($yourfield)) {
    echo $yourfield;
    }
    ?>

    tried ‘_piva’ or ‘piva’ or ‘Partita IVA’ or ‘_Partita IVA’does not work

    many thanks for the assistance

    Plugin Author Ewout

    (@pomegranate)

    The leading underscore is only for hidden fields like the woocommerce ones.

    What do you see if you go to the corresponding order? There’s a tab there called “Custom Fields”. You should enter what’s displayed in the field “Name”. There you can also check if the field actually received it’s value correctly, because if there’s nothing to display of course it won’t. In theory it should be ‘Partita IVA’. I tried on my test install with a field labeled “This is a test” and I used that in the code like this:

    get_post_meta($wpo_wcpdf->export->order->id,'This is a test',true);

    and it showed up properly.

    By the way, remember to put code on this forum between backticks, it’s better!

    it works thanks.
      there was a space character ‘ Partita IVA’ instead of ‘Partita IVA’

    thank you very much great plugin

    Plugin Author Ewout

    (@pomegranate)

    Ah, yes, those kind of typos are always so annoying! Good to hear it’s resolved now.

    I’d really appreciate it if you leave me a review here!

    SimonBak

    (@simonbak)

    Hello,

    I’m using “WooCommerce Custom Checkout Options” plugin to add custom fields on my checkout.
    And i use your plugin to send PDF after the orde and i want to add my custom fields on the PDF template.

    How can i do that ?
    Thanks for your help.

    Plugin Author Ewout

    (@pomegranate)

    Hi Simon,
    I don’t know that plugin, but the steps are the same as above:
    1. find out the name of the custom field
    2. Use that field name in the following code (replace ‘Your field name’ with the correct name).

    <?php
    $yourfield = get_post_meta($wpo_wcpdf->export->order->id,'Your field name',true);
    if (isset($yourfield)) {
    	echo $yourfield;
    }
    ?>

    The field name should either be visible on the edit order page or in the database if it’s a hidden field.

    SimonBak

    (@simonbak)

    Ok i will try that.
    But where i have to put the code ?

    <?php
    $yourfield = get_post_meta($wpo_wcpdf->export->order->id,'Your field name',true);
    if (isset($yourfield)) {
    	echo $yourfield;
    }
    ?>
    Plugin Author Ewout

    (@pomegranate)

    Wherever you want it to appear in the template. Copy all the files from woocommerce-pdf-invoices-packing-slips/templates/pdf/Simple/ to yourtheme/woocommerce/pdf/yourtemplate/ to customize them, then they won’t be overriden when you update the plugin later.

    SimonBak

    (@simonbak)

    Thanks a lot for your help.
    It’s perfect now.
    Have a good day.

    It doesn’t work 🙁

    I have a child theme. I also use “WooCommerce Custom Checkout Options” where I added two custom fields:
    NIP (do fakury VAT)
    Rodzaj faktury

    I used the code as you posted above, that is:

    <?php
    $yourfield = get_post_meta($wpo_wcpdf->export->order->id,'NIP (do fakury VAT)',true);
    if (isset($yourfield)) {
    	echo $yourfield;
    }
    ?>

    The same for the other field.

    I added it to invoice.php and packing-slip.php. You didn’t explained it more so I just added the code directly below the code that is in those files. Then I created a ‘woocommerce’ folder within my child theme directory and then inside another folder: ‘pdf’ , where I placed the modified files from above.

    What did I do wrong?

    Plugin Author Ewout

    (@pomegranate)

    Hello Michal,
    You write that you placed this ‘below the code that is in those files’, which probably means that the custom fields showed up somewhere below the footer or at the very end of the file, because the code outputs exactly where you place it.
    In your case, I can imagine you want to put it right after the recipient address:

    <div class="recipient-address"><?php $wpo_wcpdf->billing_address(); ?></div>

    Make sure that you use the correct path for the modified template! As per the instructions in the FAQ:

    How do I create my own custom template?
    Copy the files from wp-content/plugins/woocommerce-pdf-invoices-packing-slips/templates/pdf/Simple/ to wp-content/themes/yourtheme/woocommerce/pdf/yourtemplate and customize them there. The new template will show up as ‘yourtemplate’ (the folder name) in the settings panel.

    Note the ‘yourtemplate’ part (which you can name ‘Michal Custom’ or anything else if you like). Also, you need to copy all files, not just the modified files.
    Then you select that modified template in the plugin settings.

    OK, I finally get it to work but on the document I see only what a customer puts in the field, there is no field name.

    Is there a way to make the name of the custom field visible? So instead for example:

    5468468462

    we would see:
    NIP (do fakury VAT): 5468468462

    And by the way, if some function of the plugin is available ONLY after putting custom code and modyfing files, that means that this function is NOT AVAILABLE in plugin, otherwise every plugin author could claim that every possible function is possible, all one needs to do is to put XYZ code.

    My idea to implement this function really would be to add a field in your plugin options: “name of the custom field” and plus sign “add new custom field” where one could place another name of the custom field. At the end: Apply to template: xxxxx.

    A proper code, file or whatever would be placed in chosen template. That way not programing skilled persons, like me, had easy way to add any custom field providing they put a correct custom field name.

    Taking into account that custom fields are quite often when using various plugins or through customizing woocommerce, this function would make your plugin extremely universal and adaptable :D. What do you think?

Viewing 15 replies - 1 through 15 (of 21 total)
  • The topic ‘add fields in the simple template from WooCommerce Checkout Manager’ is closed to new replies.