Как заставить post_meta отображаться в шаблоне электронной почты при первой настройке и отправке - PullRequest
0 голосов
/ 11 июля 2019

На странице заказов WooCommerce моего магазина я использую Расширенные настраиваемые поля, чтобы настроить сделку выбора / опции для услуг доставки, и текстовое поле для ввода номера отслеживания.Идея состоит в том, что, когда мы заполняем оба эти поля, а затем выбираем опцию «Завершено» в элементе выбора «Состояние», а затем выбираем действие в правой части экрана, чтобы отправить подробности клиенту ...клиент должен получить электронное письмо, в котором сообщаются детали его заказа, включая услугу доставки и номер для отслеживания.

Если я все это сделаю, я получу соответствующий шаблон электронной почты, но без службы доставки или номера для отслеживания,Если я сделаю это второй раз, то он будет работать как положено.

На данный момент у меня есть сообщение на странице администратора, говорящее, чтобы сначала установить порядок со значениями настраиваемых полей, обновите его,и ТО затем выберите вариант «Завершено», чтобы отправить электронное письмо нашему клиенту.

Код ниже.Добрые люди, пожалуйста, ПОЖАЛУЙСТА, помогите мне?

Спасибо.

Я думаю, что мне нужно использовать какой-то фильтр, но я смотрю на Кодекс, и он для меня практически полный.Я знаком с концепцией хуков в PHP, и я использовал фильтр здесь и там для некоторого успеха, но я просто очень ошеломлен.

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
 }  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...