I am trying to call an ACF value from a WooCommerce product, so I can display it in an invoice, but having issues on grabbing the specific information for that. I’ve added a screenshot of the ‘Internal ID’ which is the ACF field and value.
ACF Field Value in a product (setting example):
I need to add that to the following:
<?php do_action( 'wpo_wcpdf_before_order_details', $this->get_type(), $this->order ); ?>
<table class="order-details">
<thead>
<tr>
<th class="product"><?php _e( 'Product Name', 'woocommerce-pdf-invoices-packing-slips' ); ?></th>
<th class="reference"><?php _e( 'Product Reference', 'woocommerce-pdf-invoices-packing-slips' ); ?></th>
<th class="pick_quantity"><?php _e( 'Pick Qty', 'woocommerce-pdf-invoices-packing-slips' ); ?></th>
<th class="price"><?php _e( 'Price ex.VAT', 'woocommerce-pdf-invoices-packing-slips' ); ?></th>
<th class="vat"><?php _e( 'VAT', 'woocommerce-pdf-invoices-packing-slips' ); ?></th>
<th class="price"><?php _e( 'Price inc.VAT', 'woocommerce-pdf-invoices-packing-slips' ); ?></th>
</tr>
</thead>
<tbody>
<?php foreach ( $this->get_order_items() as $item_id => $item ) : ?>
<tr class="<?php echo apply_filters( 'wpo_wcpdf_item_row_class', 'item-'.$item_id, $this->get_type(), $this->order, $item_id ); ?>">
<td class="product">
<?php $description_label = __( 'Description', 'woocommerce-pdf-invoices-packing-slips' ); // registering alternate label translation ?>
<span class="item-name"><?php echo $item['name']; ?></span>
<?php do_action( 'wpo_wcpdf_after_item_meta', $this->get_type(), $item, $this->order ); ?>
</td>
<td class="reference">
<?php if ( ! empty( $item['sku'] ) ) : ?><dt class="sku"><dd class="sku"><?php echo $item['sku']; ?></dd><?php endif; ?>
<?php echo $item['thumbnail']?>
</td>
<td class="pick_quantity"><?php
echo $item['quantity'];
?></td>
<td class="price"><?php echo $item['line_total']; ?></td>
<td class="vat"><?php echo $item['line_tax']; ?></td>
<td class="price"><?php echo $item['order_price']; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
<tfoot>
Ideally I would like to change out the line:
<?php if ( ! empty( $item['sku'] ) ) : ?><dt class="sku"><dd class="sku"><?php echo $item['sku']; ?></dd><?php endif; ?>
for the ‘Internal ID’ from ACF.
If anyone could help that would be great, as I’m a complete novice with this.
Simply replace your code line:
<?php if ( ! empty( $item['sku'] ) ) : ?><dt class="sku"><dd class="sku"><?php echo $item['sku']; ?></dd><?php endif; ?>
with the following:
<?php if ( $interval_id = get_field('interval-id', $item->get_product_id()) : ?><dt class="sku"><dd class="sku"><?php echo $interval_id; ?></dd><?php endif; ?>
replacing 'interval-id'
with the correct slug used in your ACF settings.