Comment déclencher un e-mail complet de commande WooCommerce?

10

Je souhaite pouvoir déclencher l'envoi de l'e-mail de commande WooCommerce à un stade différent du processus de paiement WooCommerce. J'ai donc désactivé l'e-mail complet de la commande WooCommerce depuis le backend et je suis maintenant à la recherche d'une ligne de code qui déclenchera l'e-mail au moment où je le souhaite. J'ai fait un peu de recherche et j'ai trouvé comment supprimer l'e-mail complet de la commande mais pas comment le déclencher manuellement. Des conseils?

Merci!

user3210369
la source

Réponses:

11

Vous pouvez essayer ceci

$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
la source
Je vous remercie. Est-il possible de s'assurer que quelqu'un n'en abuse pas, c'est-à-dire si je jette cela à un endroit spécifique sur la page de remerciement, est-il possible de ne pas envoyer d'e-mail chaque fois qu'une personne actualise la page?
user3210369
WooCommerce s'occupe de cette chose car le plugin n'envoie que des courriers électroniques. Mais vous l'envoyez sur la page de remerciement, alors vous devez vous en occuper, vous pouvez ajouter une certaine valeur méta à la méta utilisateur ou stocker des cookies dans son navigateur. et veuillez marquer cette réponse comme acceptée car elle fait votre travail actuel.
Sumit
4

Plutôt que de boucler ou de réutiliser le même objet comme suggéré par @Sumit. Vous pouvez lancer un nouvel objet, puis appeler le déclencheur.

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