Jak aktywować pełny e-mail zamówienia WooCommerce?

10

Chcę mieć możliwość uruchomienia pełnego adresu e-mail zamówienia WooCommerce na innym etapie procesu realizacji zamówienia WooCommerce. Wyłączyłem więc zamówienie WooCommerce na kompletny e-mail z backendu i teraz szukam linii kodu, która wyzwoli e-mail w wybranym przeze mnie punkcie. Przeprowadziłem trochę badań i odkryłem, jak usunąć kompletną wiadomość e-mail z zamówieniem, ale nie wiem, jak ją uruchomić ręcznie. Jakieś wskazówki?

Dzięki!

użytkownik3210369
źródło

Odpowiedzi:

11

Możesz tego spróbować

$mailer = WC()->mailer();
$mails = $mailer->get_emails();
if ( ! empty( $mails ) ) {
    foreach ( $mails as $mail ) {
        if ( $mail->id == 'customer_completed_order' ) {
           $mail->trigger( $order->id );
        }
     }
}
Sumit
źródło
Dziękuję Ci. W jakikolwiek sposób, aby ktoś nie nadużywał, np. Jeśli wrzucę to w określone miejsce na stronie z podziękowaniami, czy w ogóle nie można wysyłać wiadomości e-mail za każdym razem, gdy ktoś odświeży stronę?
user3210369,
WooCommerce zajmuje się tym, ponieważ wtyczka wysyła wiadomości e-mail tylko na hakach. Ale wysyłasz go na stronie z podziękowaniami, musisz się tym zająć, możesz dodać meta wartość do meta użytkownika lub przechowywać pliki cookie w jego przeglądarce. i proszę zaznaczyć tę odpowiedź jako zaakceptowaną, ponieważ wykonuje ona bieżącą pracę.
Sumit,
4

Zamiast zapętlać lub ponownie używać tego samego obiektu, jak sugeruje @Sumit. Możesz zainicjować nowy obiekt, a następnie wywołać wyzwalacz.

$email_oc = new WC_Email_Customer_Completed_Order();
$email_oc->trigger($order_id);
Karthik Thayyil
źródło