Wie kann ich eine vollständige E-Mail für die Bestellung von WooCommerce auslösen?


10

Ich möchte in der Lage sein, die vollständige E-Mail für die WooCommerce-Bestellung in einem anderen Stadium des WooCommerce-Bestellvorgangs auszulösen. Daher habe ich die vollständige E-Mail-Bestellung von WooCommerce über das Backend deaktiviert und suche jetzt nach einer Codezeile, die die E-Mail an der gewünschten Stelle auslöst. Ich habe ein wenig Forschung getan , und ich habe festgestellt , wie zu entfernen , die um eine vollständige E - Mail , aber nicht , wie es manuell auszulösen. Irgendwelche Tipps?

Vielen Dank!

Antworten:


11

Sie können dies versuchen

$mailer = WC()->mailer();
$mails = $mailer->get_emails();
if ( ! empty( $mails ) ) {
    foreach ( $mails as $mail ) {
        if ( $mail->id == 'customer_completed_order' ) {
           $mail->trigger( $order->id );
        }
     }
}

Vielen Dank. Gibt es eine Möglichkeit, um sicherzustellen, dass jemand es nicht missbraucht, dh wenn ich das an eine bestimmte Stelle auf der Dankesseite werfe, gibt es trotzdem eine Möglichkeit, nicht jedes Mal eine E-Mail zu senden, wenn eine Person die Seite aktualisiert?
user3210369

WooCommerce kümmert sich um diese Sache, da das Plugin nur E-Mails über Hooks sendet. Aber Sie senden es auf der Dankesseite. Dann müssen Sie sich darum kümmern. Sie können dem Benutzer-Meta einen Metawert hinzufügen oder einige Cookies in seinem Browser speichern. und bitte markieren Sie diese Antwort als akzeptiert, da sie Ihren aktuellen Job erledigt.
Summe

4

Anstatt dasselbe Objekt wie von @Sumit vorgeschlagen zu schleifen oder wiederzuverwenden. Sie können ein neues Objekt initiieren und dann den Trigger aufrufen.

$email_oc = new WC_Email_Customer_Completed_Order();
$email_oc->trigger($order_id);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.