wordpress WooCommerce电子邮件模板中的高级自定义字段

xoefb8l8  于 2023-10-17  发布在  WordPress
关注(0)|答案(1)|浏览(144)

我在WooCommerce中使用Advanced Custom Fields (ACF) plugin,并设置了一个名为“tracking-no”的自定义字段。
如何在Woocommerce模板emails/customer-completed-order.php中显示此自定义字段的值?
我使用这个代码:

<?php
    if(get_field('tracking-no'))
    {
        echo '<p>' . get_field('tracking-no') . '</p>';
    }
?>

但我什么都没得到。
谢谢

hl0ma9xz

hl0ma9xz1#

在您的WooCommerce模板中,您应该首先获取订单ID作为get_field()中的参数:

<?php
    $tracking_num = get_field('tracking-no', $order->get_id() );

    if( $tracking_num ){
        echo '<p>' . $tracking_num . '</p>';
    }
?>

您也可以使用此模板上的任何电子邮件通知挂钩,如下所示:

add_action( 'woocommerce_email_order_details', 'my_custom_field_in_completed_notification', 10, 4 );
function my_custom_field_in_completed_notification( $order, $sent_to_admin, $plain_text, $email ){
    $tracking_num = get_field('tracking-no', $order->get_id() );

    if( $tracking_num ){
        echo '<p>' . $tracking_num . '</p>';
    }
}
  • 代码放在子主题的functions.php文件中(或插件中)。*

在这种情况下,我们不覆盖WooCommerce模板。你也可以使用两个类似的钩子:

'woocommerce_email_order_meta'
'woocommerce_email_customer_details'

相关问题