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
dulu wkt aku coba2 bikin blog toko online, bagian ini nih yg paling gak bisa aku terapin. Makanya aku pakai model page aja.
ReplyDeleteWah keren juga ya
ReplyDeletebisa disetting sesui keinginan