WooCommerce 电子邮件模板中的高级自定义字段
Advanced Custom Fields in WooCommerce Email templates
我在 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>';
}
?>
但我什么也没得到。
谢谢
在您的 WooCommerce 模板中,您应该首先获取订单 ID 作为 get_field()
中的参数:
<?php
// Get the $order ID (WooCommerce version compatibility)
if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
$order_id = int_val( $order->id ); // Older than 3.0
} else {
$order_id = int_val( $order->get_id() ); // 3.0+
}
$tracking_num = get_field('tracking-no', $order_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 ){
// Get the $order ID (WooCommerce version compatibility)
if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
$order_id = int_val( $order->id ); // Older than 3.0
} else {
$order_id = int_val( $order->get_id() ); // 3.0+
}
$tracking_num = get_field('tracking-no', $order_id );
if( $tracking_num ){
echo '<p>' . $tracking_num . '</p>';
}
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
In this case we don't override WooCommerce templates. You can also use that 2 similar hooks:
woocommerce_email_order_meta
woocommerce_email_customer_details
我在 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>';
}
?>
但我什么也没得到。
谢谢
在您的 WooCommerce 模板中,您应该首先获取订单 ID 作为 get_field()
中的参数:
<?php
// Get the $order ID (WooCommerce version compatibility)
if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
$order_id = int_val( $order->id ); // Older than 3.0
} else {
$order_id = int_val( $order->get_id() ); // 3.0+
}
$tracking_num = get_field('tracking-no', $order_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 ){
// Get the $order ID (WooCommerce version compatibility)
if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
$order_id = int_val( $order->id ); // Older than 3.0
} else {
$order_id = int_val( $order->get_id() ); // 3.0+
}
$tracking_num = get_field('tracking-no', $order_id );
if( $tracking_num ){
echo '<p>' . $tracking_num . '</p>';
}
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
In this case we don't override WooCommerce templates. You can also use that 2 similar hooks:
woocommerce_email_order_meta
woocommerce_email_customer_details