首页 > 解决方案 > 将自定义帖子元添加到 woocommerce 订单电子邮件

问题描述

我正在尝试将自定义产品元数据添加到我的 woocommerce 新订单通知电子邮件中。

自定义产品元字段如下:

woocommerce_wp_text_input( 
    array( 
        'id'                => '_text_field', 
        'label'             => __( 'OUDE DBV Artikelnummer', 'woocommerce' ), 
        'placeholder'       => 'LET OP! Dit is het OUDE artikelnummer',
        'desc_tip'          => 'true',
        'description' => __( 'LET OP! Dit is het OUDE Dordtse Bazar Verhuur artikelnummer.', 'woocommerce' ) 
    )
);

我已将 email-orders-details.php 复制到我的子主题文件夹中,并且新列在电子邮件中显示得非常好。

<tr>
                <th class="td" scope="col" style="text-align:<?php echo esc_attr( $text_align ); ?>;"><?php esc_html_e( 'Product', 'woocommerce' ); ?></th>
                <th class="td" scope="col" style="text-align:<?php echo esc_attr( $text_align ); ?>;"><?php esc_html_e( 'DBV Art. Nr.', 'woocommerce' ); ?></th>
                <th class="td" scope="col" style="text-align:<?php echo esc_attr( $text_align ); ?>;"><?php esc_html_e( 'Quantity', 'woocommerce' ); ?></th>
                <th class="td" scope="col" style="text-align:<?php echo esc_attr( $text_align ); ?>;"><?php esc_html_e( 'Price', 'woocommerce' ); ?></th>
            </tr>

现在我正在努力检索这个自定义字段的值。我已将 email-order-items.php 复制到我的子主题文件夹中。我已在此处添加此代码,但电子邮件中未显示任何值。我在这里做错了什么?

// allow other plugins to add additional product information here.
        do_action( 'woocommerce_order_item_meta_end', $item_id, $item, $order, $plain_text );

        ?>
        </td>
        <td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>; vertical-align:middle; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;">
            <?php echo get_post_meta( $post->ID, '_text_field', true ); ?> 
        </td>

希望你能帮助我解决这个问题。

标签: wordpresswoocommerce

解决方案


你需要通过$product->get_id()

// allow other plugins to add additional product information here.
do_action( 'woocommerce_order_item_meta_end', $item_id, $item, $order, $plain_text );

?>
</td>
<td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>; vertical-align:middle; font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;">
    <?php echo get_post_meta( $product->get_id(), '_text_field', true ); ?> 
</td>

推荐阅读