在电子邮件上获取 WooCommerce 订单日期时间

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


<?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 电子邮件模板中工作吗?比如改变超链接在文本中的放置方式?


九州编程
浏览 82回答 1
1回答

POPMUISE

在大多数电子邮件模板或电子邮件挂钩中,该WC_Order对象$order是可访问的,因此您可以使用以下WC_Order方法之一:get_date_created(),get_date_modified(),get_date_paid(),get_date_completed()您将获得WC_DateTime可以在代码中使用的对象,例如:<?php&nbsp;&nbsp; &nbsp; $order_datetime&nbsp; = $order->get_date_created(); // Get order created date ( WC_DateTime Object )&nbsp;&nbsp; &nbsp; $order_timestamp = $order_datetime->getTimestamp(); // get the timestamp in seconds&nbsp; &nbsp; $day&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;= 86400; // 1 day in seconds&nbsp; &nbsp; $delivery_url&nbsp; &nbsp; = 'deliveryinfopageURL'; // <== Set the correct URL to the delivery page&nbsp; &nbsp; $delivery_txt&nbsp; &nbsp; = __("Read more about delivery", "woocommerce");&nbsp; &nbsp; // Output / display&nbsp; &nbsp; printf(&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; __('Order today for estimated delivery between %s and %s. %s', "woocommerce"),&nbsp; &nbsp; &nbsp; &nbsp; '<strong>'.date('jS F', $order_timestamp + (10 * $day) ).'</strong>',&nbsp; &nbsp; &nbsp; &nbsp; '<strong>'.date('jS F', $order_timestamp + (30 * $day) ).'</strong>',&nbsp; &nbsp; &nbsp; &nbsp; '<a href="'.$delivery_url.'" target="_blank">'.$delivery_txt.'</a>'&nbsp; &nbsp; );?>它应该适用于电子邮件模板。如果该WC_order对象不可访问,但您可以访问相关WC_email对象$email并通过以下方式获取该WC_Order对象:$order = $email->object;
打开App,查看更多内容
随时随地看视频慕课网APP