2017-01-04 2 views
1

Ich bin sehr neu in WordPress und habe einen E-Commerce Store mit WooCommerce erstellt.E-Mail-Benachrichtigung für Kunden in WooCommerce anpassen

Nachdem der Kunde eine Bestellung aufgegeben hat, erhalte ich eine E-Mail und der Kunde bekommt eine E-Mail - eine für mich, um zu sagen, was sie bestellt haben, und eine als Dankes-E-Mail.

Innerhalb dieses dankt Sie eine E-Mail, in meiner functions.php Datei, ich habe das Thema des Kopfes gelernt ändern ihre Namen wie diese enthalten:

//add the first name of the person to the person getting the reciept in the subject of the email. 
add_filter('woocommerce_email_subject_customer_processing_order','UEBC_change_processing_email_subject', 10, 2); 

function UEBC_change_processing_email_subject($subject, $order) { 
global $woocommerce; 
$subject = 'Thanks for your ' . get_bloginfo('name', 'display') . ' Order, '.$order->billing_first_name .'!'; 
return $subject; 
} 

Der Code-Snippet oben korrekt arbeitet, und wird nur dem Kunden angezeigt, nicht mir. z.B. "Danke für deine Bestellung ABCD Kleiderordnung John!". Im Körper der E-Mail, ich versuche, dies persönlich zu machen, wie ein kleines danken Sie Mitteilung, aber wenn ich die Meldung machen, ich den Haken bin mit:

add_action('woocommerce_email_before_order_table', 'custom_add_content', 20,1); 

Ich weiß, dass die seit im mit woocommerce_email_before_order_table hook, wird die benutzerdefinierte Funktion im Text der E-Mail sowohl an den Kunden als auch an mich gesendet.

Ich frage mich, gibt es einen Haken, den Woocommerce bietet, so dass die benutzerdefinierte Funktion nur an den Kunden innerhalb des Körpers der E-Mail gesendet wird?

Zum Beispiel: woocommerce_email_header_customer_processing_order oder Wörter zu diesem Zweck?

Dank

Antwort

2

Um einige benutzerdefinierte Inhalte mit woocommerce_email_before_order_table Haken hinzufügen und nur die Kunde "Verarbeitungsreihenfolge" E-Mail-Benachrichtigung, sollten Sie diese gezielt versuchen:

add_action('woocommerce_email_before_order_table', 'custom_content_to_processing_customer_email', 10, 4); 
function custom_content_to_processing_customer_email($order, $sent_to_admin, $plain_text, $email) { 

    if('customer_processing_order' == $email->id){ 

     // Set here as you want your custom content (for customers and email notification related to processing orders only) 
     echo '<p class="some-class">Here goes your custom content… </p>'; 

    } 

} 

-Code in der Funktion geht. PHP-Datei Ihres aktiven untergeordneten Themas (oder Themas). Oder auch in beliebigen Plugin-PHP-Dateien.

Dieser Code ist getestet und funktioniert

+0

brilliant, danke, es hat funktioniert. Aus Neugier, was ist der Zweck, alle 4 dieser Argumente in die Funktion aufzunehmen, wenn nur $ email verwendet wird? –

+1

Da '$ email' das vierte und letzte Argument ist, können Sie ** ** nicht entfernen, und Sie müssen möglicherweise in Zukunft weitere Bedingungen oder Code hinzufügen, der auf den anderen Argumenten basiert (besonders auf der ersten)) ... Das Wichtigste ist, dass das für dich funktioniert oder nicht? – LoicTheAztec

Verwandte Themen