WooCommerce Hook bevor „New Order“-Mail versendet wird

Lesezeit: 2 Minuten

Während meiner WooCommerce-Bestellung wählt der Benutzer ein Bild aus, das auf den Server hochgeladen wird. Jetzt muss ich dieses Bild bearbeiten (Größe ändern, zuschneiden usw. mit ImageMagick), BEVOR die E-Mails “Neue Bestellung” gesendet werden, da ich dieses Bild an diese E-Mails anhänge.

Ich habe den Payment_complete-Hook ausprobiert, aber dieser ist zu spät, die Mails werden bereits gesendet. Ich habe auch darüber nachgedacht, es in den Mail-Vorlagen zu machen, aber es muss nur einmal gemacht werden, also muss es vor allem vor dem Versenden der Mails sein.

Natürlich soll es nach der „Danke“-Seite auf dem Server passieren, der Nutzer soll nicht auf diese Verarbeitung warten müssen.

Bearbeiten: Der Haken sollte die Bestell-ID liefern, da ich auf die Bestellartikel zugreifen muss.

Wo kann ich meinen Code einfügen/haken, um dies zu erreichen?

Danke!

Nun, die neuen Bestell-E-Mails werden ausgelöst, um auf dem ausgeführt zu werden woocommerce_order_status_pending_to_processing_notification und woocommerce_order_status_pending_to_on-hold_notification Hooks, mit Standardpriorität (10).

Daher sollten Sie in der Lage sein, Ihren Code auf denselben Hooks mit einer niedrigeren Priorität (z. B. 5) auszuführen.

Andernfalls könnten Sie die Benachrichtigung überspringen und sich nur auf die Änderung des Bestellstatus konzentrieren, also die folgenden Haken:

woocommerce_order_status_pending_to_processing und woocommerce_order_status_pending_to_on-hold

  • Danke für deine Antwort! Mit Ihren Hooks funktioniert es tatsächlich, Code auszuführen, bevor die E-Mails gesendet werden. Das Problem besteht immer noch darin, dass die Seite darauf wartet, dass sie abgeschlossen wird. Was ich möchte, ist, dass es den “Danke”-Bildschirm gibt, auf dem die Bestellung abgeschlossen ist, um meinen Code auszuführen, damit der Benutzer nicht warten muss, aber es sieht so aus, als würden die E-Mails gesendet, bevor diese Seite erreicht wird, richtig?

    – Nter Grad

    4. Juni 2015 um 20:19 Uhr


  • Das stimmt, Sie müssen warten, bis die Funktion abgeschlossen ist. Um dies zu vermeiden, könnten Sie das Bild nach dem Hochladen asynchron verarbeiten.

    – Helgathewikinger

    4. Juni 2015 um 20:37 Uhr

  • Ja, richtig, aber das würde mir das Problem bereiten, nicht sicher zu sein, ob die asynchrone Aufgabe in dem Moment erledigt ist, in dem der Benutzer die neue Bestellung abschließt. Sieht so aus, als ob der Weg wäre, eine asynchrone Aufgabe auf der Dankesseite zu starten, die das Bild verarbeitet und anschließend die E-Mails auslöst.

    – Nter Grad

    4. Juni 2015 um 20:58 Uhr

999290cookie-checkWooCommerce Hook bevor „New Order“-Mail versendet wird

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy