根据送货方式自定义Woocommerce新订单电子邮件通知

时间:2017-09-06 19:32:36

标签: php wordpress woocommerce orders email-notifications

如何编辑admin-new-order.php WooCommerce模板,根据送货方式有条件地发送一些自定义客户详细信息?

例如(对于新订单电子邮件通知)

  • 如果订单发送方式为 flat rate ,我想在客户详细信息中添加一些自定义字段信息。
  • 如果订单送货方式不是 flat rate ,我不希望显示自定义字段信息。

或者也许在function.php中有一些代码片段?

1 个答案:

答案 0 :(得分:3)

您可以使用挂钩在任何此挂钩中的自定义函数(调整挂钩优先级)

  • woocommerce_email_order_details
  • woocommerce_email_order_meta
  • woocommerce_email_customer_details

这是一个钩子代码的例子(而不是覆盖模板):

add_action ('woocommerce_email_customer_details', 'custom_email_customer_details', 15, 4);
function custom_email_customer_details( $order, $sent_to_admin, $plain_text, $email ){

    // Only for "New Order" email notification
    if ( 'new_order' != $email->id ) return;

    // Only "Flat Rate" Shipping Method
    if ( $order->has_shipping_method('flat_rate') ){
        $order_id = $order->get_id(); // The Order ID

        // Test output
        echo "<p>Message: The Order ID is $order_id</p>";
        echo '<p>Custom field: '. get_post_meta( $order_id, '_recorded_sales', true ) .'</p>';
    }
}

此处的挂钩优先级为15,因此它位于客户详细信息之后。

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

此代码经过测试并有效。