Настраиваемое уведомление по электронной почте для локальной доставки и выполненных заказов только в Woocommerce - PullRequest
0 голосов
/ 13 сентября 2018

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

add_action( 'woocommerce_email_order_details', 
'my_completed_order_email_instructions', 10, 4 );
function my_completed_order_email_instructions( $order, 
$sent_to_admin, $plain_text, $email ) {
// Only for processing and completed email notifications to customer
if( ! ( 'customer_processing_order' == $email->id || 
'customer_completed_order' == $email->id ) ) return;

foreach( $order->get_items('shipping') as $shipping_item ){
    $shipping_rate_id = $shipping_item->get_method_id();
    $method_array = explode(':', $shipping_rate_id );
    $shipping_method_id = reset($method_array);
    // Display a custom text for local pickup shipping method only
    if( 'local_pickup' == $shipping_method_id ){
        echo '<p><strong>Ritiro in sede</strong></p>';
        break;
    }
}

Теперь на мой вопрос: Как настроить код для удаления электронного письма с заказом на обработку, чтобы оно охватывало только электронные письма с заказом?

1 Ответ

0 голосов
/ 13 сентября 2018

Вам просто нужно заменить в коде функции это:

// Only for processing and completed email notifications to customer
if( ! ( 'customer_processing_order' == $email->id || 
'customer_completed_order' == $email->id ) ) return;

на это:

// Only for completed email notifications to customer
if( 'customer_completed_order' != $email->id ) return;

И это будет работать только для «выполненного» уведомления о заказе для клиента…Итак, полный код:

add_action( 'woocommerce_email_order_details', 'my_completed_order_email_instructions', 10, 4 );
function my_completed_order_email_instructions( $order, $sent_to_admin, $plain_text, $email ) {
    // Only for completed email notifications to customer
    if( 'customer_completed_order' != $email->id ) return;

    foreach( $order->get_items('shipping') as $shipping_item ){
        $shipping_rate_id = $shipping_item->get_method_id();
        $method_array = explode(':', $shipping_rate_id );
        $shipping_method_id = reset($method_array);
        // Display a custom text for local pickup shipping method only
        if( 'local_pickup' == $shipping_method_id ){
            echo '<p><strong>Ritiro in sede</strong></p>';
            break;
        }
    }
}

Связанный: Добавление настраиваемого текста в конкретное уведомление по электронной почте для локального забора заказов Woocommerce

...