php - 第一次发送电子邮件时,如何让 PHP 包含表单值?(WordPress 管理员)
问题描述
我在 WooCommerce 商店中使用高级自定义字段,以允许我在填写这些值时填充并包括运输服务和跟踪号信息,将订单状态设置为“已完成”,然后点击更新。
但是,直到第二次,这些值才会在电子邮件模板中水合,因为我认为 post_meta 第一次不存在。有人可以帮我弄清楚如何立即得到它吗?
这是我的代码:
add_action( 'woocommerce_email_after_order_table',
'woocommerce_email_after_order_table_func' );
function woocommerce_email_after_order_table_func( $order ) {
$ship = get_field($order->id, 'shipping_service', true);
$track = get_field($order->id, 'tracking_number', true);
$status = $order->get_status();
$shippingService = get_post_meta($order->id, 'shipping_service', true);
$trackingNumber = get_post_meta($order->id, 'tracking_number', true);
$trackingURL = '';
switch ($shippingService) {
case "FedEx":
$trackingURL = "http://www.fedex.com/Tracking?tracknumbers=";
break;
case "USPS":
$trackingURL = "https://tools.usps.com/go/TrackConfirmAction?tLabels=";
break;
}
if($status == "completed"){
?>
<h3>Shipping Information:</h3>
<table>
<tr>
<td>Tracking Number: </td>
<td>
<a href="<?php echo ($trackingURL . $trackingNumber) ?>">
<?php echo $trackingNumber; ?>
</a>
</td>
<td><?php echo $track; ?></td>
</tr>
<tr>
<td>Shipping Service: </td>
<td><?php echo $shippingService; ?></td>
<td><?php echo $ship; ?></td>
</tr>
</table>
<?php
$trackingURL = NULL;
} else {
?>
<h3>When we have your order shipped, we will send an email with that information.</h3>
<?php
}
}
解决方案
推荐阅读
- jquery - 使用两个单选按钮隐藏和显示输入文本
- java - 基于来自另一个列表的值组合的流过滤器列表
- java - 如何避免插页式广告在关闭后重新加载
- php - 如何使用 php 和 mysql 执行多个 AND 运算符和 OR 运算符?
- sql - 如何选择每列最多一列
- java - 在 set(playerVal, scan.nextInt()) 中收到错误;
- c# - 找不到包 Microsoft.AspNetCore.Identity.EntityFramework
- java - android DatagramChannel 隧道必须连接到 VpnService 中的服务器?
- regex - 我正在寻找一种解决方案来了解特定单词或数字是否在行的最后,然后是空,甚至是空格
- c# - arcgis Map api 是否支持 UWP windows 应用程序中的集群位置?