【问题标题】:Get WooCommerce order date time on emails在电子邮件上获取 WooCommerce 订单日期时间
【发布时间】:2020-05-15 14:13:00
【问题描述】:

我在网站前端的几个地方添加了以下功能,以显示基于当前日期的预计交货日期:

<?php $del_from = date('jS F', strtotime("+10 days"));
      $del_to = date('jS F', strtotime("+30 days"));
      $html = "Order today for estimated delivery between <b>{$del_from}</b> and <b>{$del_to}</b>. <a href='deliveryinfopageURL' target='_blank'>Read more about delivery</a>.";

   echo $html;
?>

我想在发货通知电子邮件中包含此内容(文本略有不同),但我不想使用当前日期 + X 天,而是使用订单日期 + X 天,因为那是履行的时间过程开始。这可能吗?

还有什么其他需要更改才能在 WooCommerce 电子邮件模板中工作吗?比如改变超链接在文本中的放置方式?

【问题讨论】:

  • @LoicTheAztec 是的,我知道该怎么做,但我不知道如何在电子邮件内容中引用订单日期。到目前为止,我只添加了静态文本。谢谢
  • @LoicTheAztec 这就是我不知道的东西,听起来像我正在寻找的东西。我不是 PHP 或 WooCommerce 开发人员,所以我想知道如何访问/引用订单日期详细信息以在电子邮件模板中使用它们。
  • @LoicTheAztec 太好了,谢谢 :)
  • 最后我在下面回答……看看吧。

标签: php wordpress woocommerce orders email-notifications


【解决方案1】:

在大多数电子邮件模板或电子邮件挂钩中,WC_Order 对象$order 是可访问的,因此您可以使用以下WC_Order 方法之一:

  • get_date_created(),
  • get_date_modified(),
  • get_date_paid(),
  • get_date_completed()

您将获得WC_DateTime 对象,您可以在代码中使用该对象,例如:

<?php 
    $order_datetime  = $order->get_date_created(); // Get order created date ( WC_DateTime Object ) 
    $order_timestamp = $order_datetime->getTimestamp(); // get the timestamp in seconds
    $day             = 86400; // 1 day in seconds

    $delivery_url    = 'deliveryinfopageURL'; // <== Set the correct URL to the delivery page
    $delivery_txt    = __("Read more about delivery", "woocommerce");

    // Output / display
    printf( 
        __('Order today for estimated delivery between %s and %s. %s', "woocommerce"),
        '<strong>'.date('jS F', $order_timestamp + (10 * $day) ).'</strong>',
        '<strong>'.date('jS F', $order_timestamp + (30 * $day) ).'</strong>',
        '<a href="'.$delivery_url.'" target="_blank">'.$delivery_txt.'</a>'
    );
?>

它应该适用于电子邮件模板。

如果WC_order对象不可访问,但可以访问相关的WC_email对象$email并通过WC_Order对象获取WC_Order对象:$order = $email-&gt;object;

【讨论】:

  • 谢谢。我们好奇的是,这也可以在“我的帐户”页面中访问吗?例如在订单详情页面上?
  • @Lyall 在订单详细信息页面上,相关模板是 order/order-details.php 在模板上调用 myaccount/view-order.php...如果您查看两个模板代码,WC_Order 对象是使用变量 $order 定义的,所以是的,您可以使用相同的代码...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-27
  • 1970-01-01
  • 1970-01-01
  • 2016-03-03
相关资源
最近更新 更多