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

问题描述 投票:0回答:1

我正在 WooCommerce 中使用高级自定义字段(ACF)插件,并且我设置了一个名为“tracking-no”的自定义字段。

如何在 Woocommerce 模板中显示此自定义字段的值

emails/customer-completed-order.php

我正在使用此代码:

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

但我什么也没得到。

谢谢

php wordpress woocommerce advanced-custom-fields email-notifications
1个回答
3
投票

在您的 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>';
    }
}

代码位于活动子主题(或主题)的 function.php 文件中,或者也位于任何插件文件中。

在这种情况下,我们不会覆盖 WooCommerce 模板。您还可以使用 2 个类似的钩子:

woocommerce_email_order_meta
woocommerce_email_customer_details
© www.soinside.com 2019 - 2024. All rights reserved.