Senden Sie eine E-Mail von WooCommerce, wenn der Bestellstatus in einen benutzerdefinierten Bestellstatus geändert wurde

8

Ich habe einen benutzerdefinierten Bestellstatus in meiner WooCommerce-Installation namens Quote erstellt.

%Vor%

Jetzt möchte ich eine E-Mail erhalten, wenn eine Bestellung erhalten wird, die das Status-Zitat erhalten hat. Ich habe ein Plugin basierend auf diesem hilfreichen Artikel erstellt: Ссылка

Mein Plugin wird grundsätzlich aus dem Artikel kopiert, ich habe gerade den Inhalt der Email geändert. Was ich ändern wollte, ist, was die E-Mail auslöst.

Das Plugin im Artikel hat folgendes:

%Vor%

Und ich möchte, dass die E-Mail ausgelöst wird, wenn eine Bestellung den Status "Quote" erhält. Ich habe das getan:

%Vor%

Es passiert nichts, wenn eine Bestellung den Status "Quote" erhält. Ich habe class-wc-order.php und speziell die Funktion update_status überprüft, da hier der woocommerce_order_status_.$this->status._to_.$new_status->slug ausgelöst wird. Ich habe eine error_log gemacht, um zu sehen, dass die Aktion woocommerce_order_status_pending_to_quote existiert, und es tut es. Aber meine Triggerfunktion in meinem Plugin wird nie ausgeführt.

Irgendwelche Ideen? Ich habe viele verschiedene Hooks ausprobiert, aber ich kann nicht scheinen, dass die Trigger-Funktion ausgeführt wird.

Vielen Dank!

    
Ella 03.06.2014, 13:29
quelle

3 Antworten

5

Ich glaube, Sie können Ihren benutzerdefinierten Hook verwenden, aber zuerst müssen Sie ihn registrieren. Ich habe eine Pull-Anforderung mit WooThemes ausstehend, um die E-Mail-Aktionen, die Sie im Core entdeckt haben, zu filtern. Aber wenn / bis es akzeptiert wird, so soll es gemacht werden:

%Vor%

Update für WooCommerce 2.3.11 +

Mit diesem Commit können Sie in WooCommerce die E-Mail-Aktionen filtern. In der Theorie sollten Sie nun in der Lage sein, eine Aktion als E-Mail-Trigger zu registrieren:

%Vor%     
helgatheviking 21.10.2014, 10:06
quelle
4

Ich habe festgestellt, dass die E-Mail-Aktionen in woocommerce.php und in init definiert sind.

%Vor%

Das ist der Grund, warum mein woocommerce_order_status_pending_to_quote Aktions-Hook nicht funktioniert hat.

Ich wollte keine Änderungen an Core-Woocommerce-Dateien vornehmen, deshalb verwendete ich die Aktion woocommerce_order_status_pending_to_processing_notification , um meine Trigger-Funktion zu aktivieren. Ich habe auch meinen Filter geändert, so dass die Bestellung immer den Status "anstehend" erhält und vor meinem benutzerdefinierten "Quote" -Status verarbeitet wird. Meine vorherige Lösung gab der Bestellung den "Zitat" Status statt "Verarbeitung", also musste ich das auch ändern.

%Vor%     
Ella 24.06.2014 10:34
quelle
0

Dank @helgatheviking gibt es jetzt einen Haken, aber ich musste auch WC () - & gt; mailer () hinzufügen. Ein Teil des obigen Codes wurde folgendermaßen geändert:

%Vor%     
Gabriel Reguly 29.06.2015 19:41
quelle

Tags und Links