在 WooCommerce PDF 发票中显示产品 ACF 字段值

问题描述 投票:0回答:1

我正在尝试从 WooCommerce 产品调用 ACF 值,因此我可以将其显示在发票中,但在获取具体信息时遇到问题。我添加了“内部 ID”的屏幕截图,即 ACF 字段和值。

产品中ACF字段值(设置示例):

ACF Field / Value

我需要将其添加到以下内容中:

<?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>

理想情况下我想更改线路:

<?php if ( ! empty( $item['sku'] ) ) : ?><dt class="sku"><dd class="sku"><?php echo $item['sku']; ?></dd><?php endif; ?>

来自 ACF 的“内部 ID”。

如果有人能提供帮助那就太好了,因为我对此完全是新手。

php wordpress woocommerce advanced-custom-fields orders
1个回答
0
投票

只需替换您的代码行:

<?php if ( ! empty( $item['sku'] ) ) : ?><dt class="sku"><dd class="sku"><?php echo $item['sku']; ?></dd><?php endif; ?>

具有以下内容:

<?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; ?>

'interval-id'
替换为 ACF 设置中使用的正确 slug

© www.soinside.com 2019 - 2024. All rights reserved.