Membuat Kostum Email Untuk Mengirim Pemberitahuan Order Baru WooCommerce

Secara default woocommerce sudah memiliki pengaturan tersendiri yang dapat digunakan untuk mengirim email pemberitahuan ketika terjadi sebuah order baru, dimana kita dapat mengatur kemana email pemberitahuan itu (order baru) dikirim, tetapi mungkin kita dalam contoh kasus tertentu kita misalnya menginginkan kostum tertentu seperti misalnya kita ingin mengirim email dengan isi dan format yang berbeda atau mungkin mengirim email dengan format subject yang berbeda tapi isi email yang sama mengikuti format defaultnya.

Contoh pertama

Dimisalkan kita ingin mengirim email dengan subject dan isi email/body yang berbeda dari nilai defaultnya, maka kita dapat menambahkan function baru ke file functions.php dengan baris kode seperti berikut 




add_action('woocommerce_checkout_order_processed', 'send_custom_email_on_new_order', 10, 1);
function send_custom_email_on_new_order($order_id) {
    $order = wc_get_order($order_id);
    $to = 'emailtujuan@gmail.com';
    $subject = 'Pesanan Baru';    
    $body = 'ini body email';    
    wp_mail($to, $subject, $email_content);
    }
}


Contoh kedua

Misalnya disini kita hanya ingin mengirim email dengan subjek email yang berbeda tetapi isi email sama dengan nilai defaultnya, maka kita dapat menambahkan fungsi seperti berikut


add_action('woocommerce_checkout_order_processed', 'send_custom_email_on_new_order', 10, 1);
function send_custom_email_on_new_order($order_id) {
    $order = wc_get_order($order_id);
   
        $email = WC()->mailer()->get_emails()['WC_Email_New_Order'];
        $email->trigger($order_id);
        $email_content = $email->get_content();
        $to = 'remailtujuan@gmail.com';
        $subject = 'Pesanan Baru';
        
        // Header email
        $headers = array('Content-Type: text/html; charset=UTF-8');

        // Kirim email
        wp_mail($to, $subject, $email_content, $headers);
    
}


Fungi yang digunakan untuk mendapatkan nilai default email yang dikirim ketika terjadi order adalah baris berikut:


$email = WC()->mailer()->get_emails()['WC_Email_New_Order'];
$email->trigger($order_id);
$email_content = $email->get_content();

Contoh ketiga

Contoh selanjutnya adalah dimisalkan email kostum tersebut hanya akan dikirim dengan conditional tertentu, misalnya berdasarkan jenis pembayaran tertentu


add_action('woocommerce_checkout_order_processed', 'send_custom_email_on_new_order', 10, 1);
function send_custom_email_on_new_order($order_id) {
    $order = wc_get_order($order_id);
    
    $payment_method = $order->get_payment_method();
    $allowed_methods = array('bacs'); // Metode pembayaran yang diizinkan untuk mengirim email

    if (in_array($payment_method, $allowed_methods)) {
        $email = WC()->mailer()->get_emails()['WC_Email_New_Order'];
        $email->trigger($order_id);
        $email_content = $email->get_content();
        $to = 'emailtujuan@gmail.com'; // Ganti dengan alamat email penerima
        $subject = 'Pesanan Baru - Check Bank Transfer';
        
        // Header email
        $headers = array('Content-Type: text/html; charset=UTF-8');

        // Kirim email
        wp_mail($to, $subject, $email_content, $headers);
    }
}




Baca juga : Membersihkan Format HTML Pada Subject Email Pemberitahuan Order WooCommerce

2 Responses to "Membuat Kostum Email Untuk Mengirim Pemberitahuan Order Baru WooCommerce"

  1. dulu wkt aku coba2 bikin blog toko online, bagian ini nih yg paling gak bisa aku terapin. Makanya aku pakai model page aja.

    ReplyDelete
  2. Wah keren juga ya
    bisa disetting sesui keinginan

    ReplyDelete

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin