我正在尝试在电子邮件中显示自定义字段。
这是我认为应该有效的脚本:
<?php if ($day) : ?>
<p><strong><?php _e('day:', 'woocommerce-pip'); ?></strong> <?php echo $order->day; ?></p>
<?php endif; ?>
但它不起作用。该字段的名称为 'day'
。
这应该有用吗?我错过了什么?
感谢。
答案 0 :(得分:1)
我假设您已在结帐页面上正确设置了此自定义字段,其中一些代码显示自定义字段,并在数据库中的订单中保存此自定义字段的值(如果没有,您将什么都得不到)
在尝试获取此自定义字段的值之前,首先需要检索order ID
,并且可能有两种情况:
$order
变量或对象。您只需使用以下命令检索它:$order_id = $order->id;
// or
$order_id = str_replace( '#', '', $order->get_order_number() );
$order
对象,您需要先获取它:global $woocommerce, $post;
$order = new WC_Order( $post->id );
// and after you can get the order ID
$order_id = $order->id;
// or
$order_id = str_replace( '#', '', $order->get_order_number() );
现在您可以获取值并显示它,因为您有$order_id
:
<?php $day = get_post_meta( $order_id, 'day', true );
if ( !empty( $day ) ) : ?>
<p><strong><?php _e('day:', 'woocommerce-pip'); ?></strong> <?php echo $day; ?></p>
<?php endif; ?>
但是您应该在 order_id
表中的post_id
wp_postmeta
内的meta_value => 'day'
中检入您的数据库,meta_value
存在一些值相应的reduce
行/列。如果没有,当您创建此自定义字段并将值保存在结帐页面时,您的代码肯定存在问题。
答案 1 :(得分:0)
对于像这样的显示自定义字段
<?php echo get_post_meta( get_the_ID(), ‘tes_custom_field’, true ); ?>
有关详细信息,请查看此不同的好教程http://www.themelocation.com/how-to-display-custom-field-value-on-product-page-in-woocommerce/