在Woocommerce订单电子邮件中的ACF字段中显示值

时间:2018-10-23 06:54:58

标签: php wordpress woocommerce advanced-custom-fields email-notifications

我正在尝试在处理订单时Woocommerce自动发送给客户的电子邮件中显示交货日期的值。

我已经创建了一个称为“ leveranstid”的高级自定义字段值,我希望它与电子邮件中的所有产品一起显示。我试图将下面的代码添加到functions.php中,但似乎无法正常工作。什么都没显示。如果有人请帮助我找出问题所在,我将不胜感激。

add_action( 'woocommerce_order_item_meta_start', 
'ts_order_item_meta_start', 10, 4 );
function ts_order_item_meta_start( $item_id, $item, $order, $plain_text 
) {

$leverans = get_field(’leveranstid’, $post_id);
echo $leverans;
}

2 个答案:

答案 0 :(得分:0)

变量$post_id未在$leverans = get_field('leveranstid', $post_id);中定义。而是尝试:

add_action( 'woocommerce_order_item_meta_start', 'display', 10, 4 );
function ts_order_item_meta_start( $item_id, $item, $order, $plain_text ) {

    if( $leverans = get_field( 'leveranstid', $item->get_product_id() ) ;
        echo $leverans;
}

如果为您的产品定义了'leveranstid' ACF字段,它应该可以工作。

有关参考,请参见:Get Order items and WC_Order_Item_Product in Woocommerce 3

答案 1 :(得分:-1)

add_action( 'woocommerce_order_item_meta_start', 'ts_order_item_meta_start', 10, 4 );

function ts_order_item_meta_start( $item_id, $item, $order, $plain_text ) {
    if( $leverans = get_field( 'leveranstid', $item->get_product_id() )) {
      echo '<p>'.$leverans.'</p>';
    }
}