在Woocommerce中使用动态数据自定义电子邮件主题

时间:2018-07-06 16:54:21

标签: php wordpress woocommerce orders email-notifications

  

不是 Display order total with and without VAT in Woocommerce's order email notification的副本。

如何自定义电子邮件的主题(不是正文)。我知道如何在正文中编辑变量,但是相同的变量在主题)。

因此,我正在尝试更改WooCommerce订单电子邮件通知的主题

可以通过WooCommerce->设置->电子邮件->新订单->管理来自定义主题,根据WooCommerce文档,有{order_date}{customer_name}等变量。 ..可用于获取动态订单数据。

我的问题是我想在主题中显示“ 订单号”和“ 订单总数”:

  • 如果我使用以下格式:Order {order_number} - {order_date} - {dollars_spent_order}
  • 我应该得到:Order # 123456 - July 6, 2018 - {dollars_spent_order}

但是它不起作用。使用单个或两个大括号没有区别。

如何将订单总计(包括税金,运费等)添加到电子邮件主题行?

我想得到以下结果:

  

订单号123456-2018年7月6日-$ 1,234.56

我用Google搜索了此内容,但没有找到任何代码片段向我展示如何执行此操作。

还有一个“ WooCommerce后续行动”扩展程序,添加了更多变量,但它的价格是99.00美元,我不需要所有这些,仅是订单总额。哪里有代码片段……

1 个答案:

答案 0 :(得分:2)

要自定义例如“新订单”电子邮件主题(发送给管理员),您将使用以下挂钩函数:

add_filter( 'woocommerce_email_subject_new_order', 'custom_email_subject', 20, 2 );
function custom_email_subject( $formated_subject, $order ){
    return sprintf( __('Order # %d - %s - %s', 'woocommerce'), 
        $order->get_id(), // Order ID
        $order->get_date_modified()->date_i18n('F j, Y'), // Formatted date modified
        wc_price($order->get_total()) // Order Total
    );
}

代码进入活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。


现在可以自定义其他电子邮件通知(保留,处理,完成或发票),您可以使用以下任何一个过滤器挂钩:

  • woocommerce_email_subject_customer_on_hold_order
  • woocommerce_email_subject_customer_processing_order
  • woocommerce_email_subject_customer_completed_order
  • woocommerce_email_subject_customer_invoice
  • woocommerce_email_subject_customer_note
  • woocommerce_email_subject_low_stock
  • woocommerce_email_subject_no_stock
  • woocommerce_email_subject_backorder
  • woocommerce_email_subject_customer_new_account