2016-07-28 5 views
2

У меня была пользовательская функция почтовой программы WooCommerce ниже для отправки писем клиентам в качестве уведомления о покупке, но у меня появилось требование добавить ответ-тег.

Чтобы подробно описать, заказчик должен получить электронное письмо ($order->billing_email) для получения уведомления о заказе от [email protected] и добавить к нему ответный тег для [email protected].

Что это делает, что электронная почта будет отправлена ​​из [email protected], но когда клиенты ударил ответ, когда они хотят, чтобы задать нам любые вопросы, эти ответы будут идти на [email protected]

Может ли один помочь мне, как изменить $mailer->send функция для достижения требования?

function my_awesome_publication_notification($order_id, $checkout=null) { 
    global $woocommerce; 
    $order = new WC_Order($order_id); 
    if($order->status === 'completed') { 
     // Create a mailer 
     $mailer = $woocommerce->mailer(); 

     $message_body = __('Hello world!!!'); 

     $message = $mailer->wrap_message(
     // Message head and message body. 
     sprintf(__('Order %s received'), $order->get_order_number()), $message_body); 


     // Client email, email subject and message. 
    $mailer->send($order->billing_email, sprintf(__('Order %s received'), $order->get_order_number()), $message); 
    } 

    } 
} 
+0

Попробуйте проверить, что находится внутри 'get_headers()' Я думаю, что ваша электронная почта там скрыта. И если это так, возможно, это может быть полезно: http://wordpress.stackexchange.com/questions/183206/adding-reply-to-in-the-email#answer-183224 –

+0

Вы пробовали фильтровать ['woocommerce_email_headers'] (https://github.com/woothemes/woocommerce/blob/f8db1c403fd81b18958b675421ee9fc012fa6551/includes/emails/class-wc-email.php#L281)? – helgatheviking

ответ

3

Добавлена ​​совместимость для WooCommerce 3+

При взгляде на Class WC_Email на посыла() функции вы имеете:

send(string $to, string $subject, string $message, string $headers, string $attachments) 

Перенося это код, $ заголовки могли таким образом:

function my_awesome_publication_notification($order_id, $checkout=null) { 
    global $woocommerce; 

    // Get order object. 
    $order = new WC_Order($order_id); 

    $order_status = method_exists($order, 'get_status') ? $order->get_status() : $order->status; 

    if($order_status === 'completed') { 

     // Create a mailer 
     $mailer = $woocommerce->mailer(); 

     $message_body = __('Hello world!!!'); 

     // Message head and message body. 
     $message = $mailer->wrap_message(sprintf(__('Order %s received'), $order->get_order_number()), $message_body); 

     // Here is your header 
     $reply_to_email = '[email protected]'; 
     $headers = array(sprintf('Reply-To: %s', $reply_to_email)); 
     // Or instead, try this in case: 
     // $headers = 'Reply-To: ' . $reply_to_email . '\r\n'; 

     // Client email, email subject and message (+ header "reply to"). 
     $mailer->send($order->billing_email, sprintf(__('Order %s received'), $order->get_order_number()), $message, $headers); 
    } 
} 

Это должно сработать. Пожалуйста, обратите внимание на последний эталонным кода, так как он очень похож на ваш ...

Ссылки:

 Смежные вопросы

  • Нет связанных вопросов^_^