0
votes

I am looking to add custom meta after the order data in WooCommerce PDF Invoices & Packing Slips. If a Custom Field is present on a WooCommerce order,

In my code my custom field name is wholesale_order.

For this I make use of:

add_action( 'wpo_wcpdf_after_order_data', 'add_due_date', 10, 2 );
function add_due_date() {

 $order_data = get_post_meta( $post->ID, 'wholesale_order', true );
  if( $order_data ) {
      // Do stuff
     }
}

Unfortunately without the desired result, I think the $post->ID is incorrect and probably the get_post_meta.

What am I missing?

2
A quick google search shows no results at all for add_woo_order_data; are you sure that's the correct hook?Xhynk
The hook I am actually using is wpo_wcpdf_after_order_data from a PDF Invoice plugin docs.wpovernight.com/woocommerce-pdf-invoices-packing-slips/…neilgee
Real hook name is updated in the codeneilgee

2 Answers

1
votes

First try:

function action_wpo_wcpdf_after_order_data( $template_type, $order ) {
    // Get meta
    $wholesale_order = $order->get_meta( 'wholesale_order' );

    echo $wholesale_order;
}
add_action( 'wpo_wcpdf_after_order_data', 'action_wpo_wcpdf_after_order_data', 10, 2 );

If that works you can expand your code to something like:

function action_wpo_wcpdf_after_order_data( $template_type, $order ) {
    // Get meta
    $wholesale_order = $order->get_meta( 'wholesale_order' );

    // NOT empty
    if ( ! empty ( $wholesale_order ) ) {
        ?>
        <tr class="my-class>
            <th><?php __( 'My title', 'woocommerce' ); ?></th>
            <td>
                <?php echo $wholesale_order; ?>
            </td>
        </tr>
        <?php
    }
}
add_action( 'wpo_wcpdf_after_order_data', 'action_wpo_wcpdf_after_order_data', 10, 2 );

Action hook:

  • wpo_wcpdf_after_order_data has 2 arguments $template_type & $order.
  • After the order data - note that this is inside a table, and you should output the data as an html table row/cells.
0
votes

Declare global $post before $order_data variable.