php - 将创建日期时间戳添加到 WooCommerce 客户电子邮件
问题描述
我正在尝试在感谢屏幕上的日期旁边和默认的处理订单电子邮件中添加订单时间给客户。目前,它看起来如下:
感谢页面:https ://i.stack.imgur.com/f0v6Y.png
处理订单邮件:https ://i.stack.imgur.com/NwaU0.png
我已经尝试在下面提到的行中弄乱原始文件,例如$order->get_date_created("d-m-Y, H:i")
但没有任何成功。
email-order-details.php 第 34 行:
echo wp_kses_post( $before . sprintf( __( '[Order #%s]', 'woocommerce' ) . $after . ' (<time datetime="%s">%s</time>)', $order->get_order_number(), $order->get_date_created()->format( 'c' ), wc_format_datetime( $order->get_date_created() ) ) );
和thankyou.php第51-54行:
<li class="woocommerce-order-overview__date date">
<?php esc_html_e( 'Date:', 'woocommerce' ); ?>
<strong><?php echo wc_format_datetime( $order->get_date_created() ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></strong>
</li>
在这里,他们可以通过编辑 functions.php 文件在电子邮件的单独一行中添加时间。我的问题的唯一区别是,他们在单独的行中添加了日期和时间,所以现在你有 2 行日期。这在“谢谢”页面上不起作用。
你能用类似的代码帮助我吗(所以要在functions.php文件中添加代码)但对我的问题更准确?谢谢
解决方案
<?php echo date( 'Y F j, g:i a', $order->get_date_created ()->getOffsetTimestamp()); ?>
<?php echo wp_kses_post( $before . sprintf( __( '[Order #%s]', 'woocommerce' ) . $after . ' (<time datetime="%s">%s</time>)', $order->get_order_number(), date( 'Y F j, g:i a', $order->get_date_created ()->getOffsetTimestamp()), date( 'Y F j, g:i a', $order->get_date_created ()->getOffsetTimestamp()) ) ); ?>