php - 根据运输方式自定义 Woocommerce 新订单电子邮件通知

标签 php wordpress woocommerce orders email-notifications

<分区>

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

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

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

或者也许在 function.php 中有一些片段用于此目的?

最佳答案

您可以使用挂接到任何此 Hook 中的自定义函数(调整 Hook 优先级):

  • woocommerce_email_order_details
  • woocommerce_email_order_meta
  • woocommerce_email_customer_details

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

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>';
    }
}

这里的 hook 优先级是 15,所以它在客户详细信息之后。

代码位于您的事件子主题(或主题)的 function.php 文件中或任何插件文件中。

此代码已经过测试并且可以工作。

关于php - 根据运输方式自定义 Woocommerce 新订单电子邮件通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46083022/

相关文章:

PHP 5.6 不会运行 CURL

php - 在给定类别中使用通配符搜索 WordPress 帖子中的特定句子并输出唯一结果

php - 从 WooCommerce 中的后元数组变量值获取特定值

php - MySQL:在一条语句中选择项目的类别和(可选)子类别

php - 如何从前一个div中获取隐藏的输入值

php - eregi_replace ("[\]",'' ,$data) -- 这一行是做什么的?

php - 检查联系表是否有效(自动测试)

php - 许多WordPress主题中奇怪的虚假social.png的目的是什么

wordpress - woocommerce_before_calculate_totals Hook 无法正常工作

javascript - Wordpress WooCommerce content-product.php javascript