Senden Sie eine Standard-WooCommerce-E-Mail, wenn Sie vom benutzerdefinierten Auftragsstatus wechseln

Ich habe den benutzerdefinierten Auftragsstatus on-review implementiert und muss jetzt die WooCommerce-Standard-Warteschleife-E-Mail senden, wenn ich den Auftragsstatus von ” on-review on-hold umschalte.

Um dies zu tun, muss ich eine neue woocommerce_order_status_on-review_to_on-hold_notification , die die trigger Methode der WC_Email_Customer_On_Hold_Order class WC_Email_Customer_On_Hold_Order .

Es sieht so aus, als ob es keine Hooks oder Filter gibt, um diese Aktion zum Standard- WC_Email_Customer_On_Hold_Order Konstruktor WC_Email_Customer_On_Hold_Order , und ich muss diese class mit einer benutzerdefinierten überschreiben. Um dies zu tun, muss ich meine benutzerdefinierte WC_Email_Customer_On_Hold_Order class definieren, nachdem die WC_Email class definiert wurde und bevor WC_Email_Customer_On_Hold_Order class WC_Email_Customer_On_Hold_Order definiert wurde.

Das Problem besteht darin, dass diese beiden classn während der Ausführung von WC_Emails in der init Methode WC_Emails und keine Haken zwischen den Dateieinschlüssen vorhanden sind.

Gibt es eine andere Möglichkeit, mein Problem zu lösen?

Solutions Collecting From Web of "Senden Sie eine Standard-WooCommerce-E-Mail, wenn Sie vom benutzerdefinierten Auftragsstatus wechseln"

Sieht so aus, als ob ich Dinge überkomplizieren würde. Das ist die Lösung:

 add_filter( 'woocommerce_email_classes', 'custom_woocommerce_email_classes', 10, 1 ); function custom_woocommerce_email_classes( $email_classes ) { $email_classes[ 'WC_Email_Customer_On_Review_Request' ] = include_once 'includes/classes/class-wc-email-customer-on-review-request.php'; // Register custom trigger to send on-hold email when status is switched from on-review to on-hold. add_action( 'woocommerce_order_status_on-review_to_on-hold_notification', [ $email_classes[ 'WC_Email_Customer_On_Hold_Order' ], 'trigger' ], 10, 2 ); return $email_classes; }