2016-07-28 7 views
2

Ich hatte eine benutzerdefinierte WooCommerce Mailer-Funktion unten zum Senden von E-Mails an Kunden als eine Benachrichtigung über den Kauf, aber ich habe eine Anforderung zum Hinzufügen von Antwort-to-Tag.

Um im Detail zu beschreiben, muss der Kunde eine E-Mail() für die Bestellbenachrichtigung von [email protected] erhalten und den Antwort-to-Tag für anhängen.

Was das bedeutet ist, dass E-Mails von [email protected] senden, aber wenn die Kunden die Antwort treffen, wenn sie uns Fragen stellen möchten, werden diese Antworten gehen auf [email protected]

Kann jemand mir helfen, wie die $mailer->send ändern Funktion um die Anforderung zu erfüllen?

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

Versuchen zu überprüfen, was ist innerhalb 'get_headers()' Ich denke, deine E-Mail ist dort versteckt. Und wenn ja, kann dies nützlich sein: http://wordpress.stackexchange.com/questions/183206/adding-reply-to-in-the-email#answer-183224 –

+0

Haben Sie versucht, ['woocommerce_email_headers' zu filtern (https://github.com/woothemes/woocommerce/blob/f8db1c403fd81b18958b675421ee9fc012fa6551/includes/emails/class-wc-email.php#L281)? – helgatheviking

Antwort

3

Added Kompatibilität für WooCommerce 3+

Wenn bei Class WC_Email am send() suchen Funktion Sie haben:

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

dies, um Ihren Code Transponieren, könnte $ headers auf diese Weise verwendet werden:

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); 
    } 
} 

Dies sollte funktionieren. Schauen Sie sich hier zum letzten Referenz-Code, wie es bei Ihnen sehr ähnlich ist ...

Referenzen: