Viewing 8 replies - 1 through 8 (of 8 total)
  • Plugin Contributor Yordan Soares

    (@yordansoares)

    Hi @olgaboca,

    Please read my reply here to learn about how to add custom fields in your PDF invoice and other PDF documents:
    https://www.ads-software.com/support/topic/warranty-does-not-show-up/#post-15217655

    Thread Starter olgaboca

    (@olgaboca)

    Hello,

    Thank you for your reply and the link for the documentation.

    As I understand I have to modify the PHP code with my meta keys. Woocommerce plugin is generating meta keys here https://snipboard.io/yGQRAE.jpg

    I tried to replace ‘custom_field_name’ with my meta key ‘nomepesonreceivfr’
    but it didn’t work.

    Can you please help me modify the PHP code with my meta keys: ‘nomepesonreceivfr’, ‘cartedeveauxcheckoutfr’, ‘numerotelephonefrcheck’, ‘messagesouhaitfrcheck’

    add_action( ‘wpo_wcpdf_after_order_data’, ‘wpo_wcpdf_my_custom_field’, 10, 2 );
    function wpo_wcpdf_my_custom_field ($template_type, $order) {
    if ($template_type == ‘invoice’) {
    ?>
    <tr class=”custom-field”>
    <th>Custom Field:</th>
    <td><?php echo $order->get_meta(‘custom_field_name’); ?></td>
    </tr>
    <?php
    }
    }

    Plugin Contributor Yordan Soares

    (@yordansoares)

    The code snippet you have copied above is a base, but you need to replace the label and metakey with the actual ones.

    Here’s a more compact code snippet, using your first custom field as an example:

    add_action( 'wpo_wcpdf_after_order_data', function( $document_type, $order ) {
    	if ( $document_type == 'invoice' ) {
    		if ( $nomepesonreceivfr = $order->get_meta('nomepesonreceivfr') ) {
    		?>
    		<tr class="nomepesonreceivfr">
    		<th>Nom de la personne qui recevra les fleurs/cadeaux:</th>
    		<td><?php echo $nomepesonreceivfr; ?></td>
    		</tr>
    		<?php
    		}
    	}
    }, 10, 2 );

    You just need to copy & paste the second if sentence to add extra custom fields.

    Thread Starter olgaboca

    (@olgaboca)

    Thank you for your reply. Appreciate your help with the code.

    I tried to place it in functions.php and it doesn’t work. The custom field is not showing up on the invoice.

    I placed a test checkout order to make sure that I am not missing anything, still, the custom fields are not showing on the invoice.

    https://snipboard.io/UG5VwD.jpg

    Plugin Contributor Yordan Soares

    (@yordansoares)

    Try adding an underscore (_) at the beginning of the metakey, like this (some plugins adds the underscore while saving the custom field):

    add_action( 'wpo_wcpdf_after_order_data', function( $document_type, $order ) {
    	if ( $document_type == 'invoice' ) {
    		if ( $nomepesonreceivfr = $order->get_meta('_nomepesonreceivfr') ) {
    		?>
    		<tr class="nomepesonreceivfr">
    		<th>Nom de la personne qui recevra les fleurs/cadeaux:</th>
    		<td><?php echo $nomepesonreceivfr; ?></td>
    		</tr>
    		<?php
    		}
    	}
    }, 10, 2 );
    Thread Starter olgaboca

    (@olgaboca)

    Hello,

    I finally made it work with this code
    if ( $nomepesonreceivfr = $order->get_meta(‘_wccf_cf_nomepesonreceivfr’) )

    The only issue is that the custom fields are displayed above the table, while I am trying to display them after the table (total price, etc), before the footer.

    It is possible with a free plugin or do we have to upgrade?

    thank you so much for all the help.
    Olga

    Plugin Contributor Yordan Soares

    (@yordansoares)

    Please try this code snippet instead, to display your custom field after the customer notes (beside the totals’ table):

    add_action( 'wpo_wcpdf_after_customer_notes', function( $document_type, $order ) {
    	if ( $document_type == 'invoice' ) {
    		if ( $nomepesonreceivfr = $order->get_meta('_wccf_cf_nomepesonreceivfr') ) {
    		?>
    		<div class="nomepesonreceivfr">
    		 <h3>Nom de la personne qui recevra les fleurs/cadeaux:</h3>
    		 <?php echo $nomepesonreceivfr; ?>		
    		</div>
    		<?php
    		}
    	}
    }, 10, 2 );

    …or after the order details:

    add_action( 'wpo_wcpdf_after_order_details', function( $document_type, $order ) {
    	if ( $document_type == 'invoice' ) {
    		if ( $nomepesonreceivfr = $order->get_meta('_wccf_cf_nomepesonreceivfr') ) {
    		?>
    		<div class="nomepesonreceivfr">
    		 <h3>Nom de la personne qui recevra les fleurs/cadeaux:</h3>
    		 <?php echo $nomepesonreceivfr; ?>		
    		</div>
    		<?php
    		}
    	}
    }, 10, 2 );
    Thread Starter olgaboca

    (@olgaboca)

    It’s working!

    Thanks again for your amazing support! Much appreciated.

Viewing 8 replies - 1 through 8 (of 8 total)
  • The topic ‘custom checkout fields’ is closed to new replies.