在Woocommerce电子邮件通知模板

时间:2017-07-17 14:12:09

标签: php wordpress woocommerce orders email-notifications

在WooCommerce中,我使用“WC Fields Factory”插件来创建 'serial' 自定义字段。我需要在/woocommerce/emails/customer-completed-order.php模板文件中显示其值。

我试过用:

echo get_post_meta(get_post()->ID, "wccaf_serial", true );

但它不起作用。

我做错了什么?

由于

2 个答案:

答案 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/