在WooCommerce中,我使用“WC Fields Factory”插件来创建 'serial'
自定义字段。我需要在/woocommerce/emails/customer-completed-order.php
模板文件中显示其值。
我试过用:
echo get_post_meta(get_post()->ID, "wccaf_serial", true );
但它不起作用。
我做错了什么?
由于
答案 0 :(得分:0)
您可以使用此电子邮件模板中的所有$order
方法直接使用 WC_Order
来获取订单ID,这样:
// Get the Order ID (WooCommerce retro-compatibility)
$order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
// Get "serial" custom field value
$serial = get_post_meta($order_id, "wccaf_serial", true );
// Display "serial" custom field value
echo '<p>'.__('Serial', 'woocommerce') . $serial . '</p>';
请阅读:Template Structure + Overriding Templates via a Theme
此外,您可以使用任何可用的钩子,例如:
,而不是覆盖此模板add_action( 'woocommerce_email_order_details', 'action_wc_email_order_details' 50, 4 );
function action_wc_email_order_details( $order, $sent_to_admin, $plain_text, $email ){
// Get the Order ID (WooCommerce retro-compatibility)
$order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
// Get "serial" custom field value
$serial = get_post_meta($order_id, "wccaf_serial", true );
// Display "serial" custom field value
echo '<p>'.__('Serial', 'woocommerce') . $serial . '</p>';
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
代码已经过测试,适用于WooCommerce 2.6.x或3 +
答案 1 :(得分:0)
看看WP HTML Mail。这个插件有一个集成的邮件编译器,用于WooCommerce电子邮件。您可以在WordPress编辑器中编辑邮件内容,并从“Placeholder”菜单中添加自定义字段。 以下是一些屏幕截图:http://wp-html-mail.com/woocommerce-custom-email-content/