Senden Sie Processing Order E-Mail vom benutzerdefinierten Zahlungs-Plugin

Alle Zahlungsmethoden senden nach Abschluss der Bestellung eine E-Mail an den Administrator und den Kunden. Ich habe benutzerdefinierte Zahlungsmethode über das Plugin mit einer Bank, das ist auf Erfolg, leerer Warenkorb, neue Reihenfolge in der Liste und alles andere funktioniert gut, aber es sendet keine E-Mails. Weil die Mail-function nicht innerhalb des Plugins existiert. Bei erfolgreicher Zahlung muss ich genau die gleiche E-Mail aus der Auftragsvorlage senden wie bei anderen Zahlungsmethoden. Ich weiß, wann die function ausgetriggers werden soll, weiß aber nicht, welche function aufgerufen werden soll.

id, array( $this, 'process_admin_options' ) ); } if( isset($_POST['oid']) && isset($_POST['Response']) ) $this->process_respond($_POST['oid'], $_POST['Response']); } public function process_respond($response_order_id, $result){ global $woocommerce; $customer_order = new WC_Order( $response_order_id ); $error_msg = "Error in transaction"; if ( $result == "Approved" ) { My_Class::extend($customer_order); ... // I need to trigger function here wp_mail(...) die(); } else { ... } } } 

Solutions Collecting From Web of "Senden Sie Processing Order E-Mail vom benutzerdefinierten Zahlungs-Plugin"

Sie können es sehr einfach tun, indem Sie seine Mail-class verwenden. Sie können diese class auch erweitern. Hier ist der Code, der mit Ihrem classncode funktionieren sollte. Wenn es nicht funktioniert hat, müssen Sie die Woocommerce-E-Mail-class genauso erweitern, wie Sie es für Ihr benutzerdefiniertes Zahlungsgateway getan haben.

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