Como acionar o e-mail completo do pedido WooCommerce?

10

Quero poder acionar o e-mail completo do pedido do WooCommerce em um estágio diferente do processo de pagamento do WooCommerce. Desabilitei o e-mail completo do pedido do WooCommerce no back-end e agora estou procurando uma linha de código que acionará o e-mail no momento que desejo. Pesquisei um pouco e descobri como remover o e-mail completo do pedido, mas não como acioná-lo manualmente. Alguma dica?

Obrigado!

user3210369
fonte

Respostas:

11

Você pode tentar isso

$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
fonte
Obrigado. Existe alguma maneira de garantir que alguém não abuse, ou seja, se eu jogar isso em um local específico na página de agradecimento, existe alguma maneira de não enviar um email toda vez que uma pessoa atualizar a página?
usar o seguinte comando
O WooCommerce cuida disso, pois o plug-in envia apenas emails em ganchos. Mas você está enviando na página de agradecimento, então você precisa cuidar disso, pode adicionar algum valor meta ao usuário meta ou armazenar alguns cookies em seu navegador. e marque esta resposta como aceita, como no seu trabalho atual.
Sumit
4

Em vez de fazer loop ou reutilizar o mesmo objeto sugerido por @Sumit. Você pode iniciar um novo objeto e, em seguida, chamar o gatilho.

$email_oc = new WC_Email_Customer_Completed_Order();
$email_oc->trigger($order_id);
Karthik Thayyil
fonte