Come attivare l'email completa dell'ordine WooCommerce?


10

Voglio essere in grado di attivare l'email completa dell'ordine WooCommerce in una fase diversa del processo di checkout di WooCommerce. Quindi ho disabilitato l'email completa dell'ordine WooCommerce dal backend e ora sto cercando una riga di codice che attiverà l'e-mail nel punto desiderato. Ho fatto un po 'di ricerche e ho scoperto come rimuovere l'email completa dell'ordine ma non come attivarla manualmente. Qualche consiglio?

Grazie!

Risposte:


11

Puoi provare questo

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

Grazie. Un modo per assicurarsi che qualcuno non l'abuso, cioè se lo lancio in un luogo specifico nella pagina di ringraziamento, c'è comunque modo di non inviare un'e-mail ogni volta che una persona aggiorna la pagina?
user3210369

WooCommerce si occupa di questa cosa poiché il plugin invia solo e-mail con gli hook. Ma lo stai inviando sulla pagina di ringraziamento, quindi devi occuparti di questo, puoi aggiungere un valore meta al meta utente o memorizzare alcuni cookie nel suo browser. e contrassegna questa risposta come accettata come fa il tuo lavoro attuale.
Sumit

4

Invece di eseguire il loop o il riutilizzo dello stesso oggetto come suggerito da @Sumit. È possibile avviare un nuovo oggetto e quindi chiamare il trigger.

$email_oc = new WC_Email_Customer_Completed_Order();
$email_oc->trigger($order_id);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.