我正在尝试将自定义产品元添加到我的 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 复制到我的 Child 主题文件夹中,新列在电子邮件中显示得非常好。
<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>
希望你能帮我解决这个问题。
答案 0 :(得分:0)
您需要通过 $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>