Resep: Notifikasi Pesanan WooCommerce via WhatsApp
Panduan ini akan membantu Anda mengirimkan notifikasi WhatsApp secara otomatis setiap kali ada pesanan baru masuk di toko WooCommerce Anda. Pelanggan akan langsung menerima konfirmasi pesanan melalui WhatsApp, meningkatkan kepercayaan dan transparansi.
๐ฏ Yang Akan Anda Capai
Setelah mengikuti panduan ini:
- Setiap pesanan baru di WooCommerce akan memicu notifikasi WhatsApp ke nomor pelanggan
- Pesan berisi detail pesanan: nama pelanggan, total, dan daftar produk
- Notifikasi dikirim secara otomatis tanpa intervensi manual
๐ Prasyarat
Sebelum memulai, pastikan Anda memiliki:
- Toko WooCommerce yang sudah berjalan di WordPress
- API Key Kirem (live key) โ dapatkan dari Dasbor Kirem
- Nomor WhatsApp terdaftar di Kirem yang sudah aktif
- Templat pesan disetujui untuk notifikasi pesanan (gunakan kategori
UTILITY) - Akses editor WordPress untuk menambahkan kode ke
functions.phpatau membuat plugin kustom
๐ง Langkah 1: Membuat Templat Pesan di Kirem
Sebelum menulis kode, buat templat pesan WhatsApp yang akan digunakan untuk notifikasi:
Endpoint: POST /v1/templates
{
"name": "notif_pesanan_baru",
"category": "UTILITY",
"language": "id",
"components": [
{
"type": "BODY",
"text": "Halo {{1}}, terima kasih telah berbelanja di {{2}}!\n\nPesanan #{{3}} telah kami terima.\nTotal: Rp {{4}}\n\nKami akan segera memproses pesanan Anda."
}
]
}
Variabel yang akan diisi:
{{1}}โ Nama pelanggan{{2}}โ Nama toko{{3}}โ Nomor pesanan{{4}}โ Total belanja
Tunggu hingga status templat menjadi APPROVED sebelum melanjutkan.
๐ง Langkah 2: Menambahkan Kode ke WordPress
Anda dapat menambahkan kode langsung ke functions.php di tema aktif, atau membuat plugin kustom. Berikut adalah plugin lengkap yang siap digunakan:
Membuat Plugin Kustom (Direkomendasikan)
Buat file baru di wp-content/plugins/kirem-woocommerce-notif/kirem-woocommerce-notif.php:
<?php
/**
* Plugin Name: Kirem WooCommerce WhatsApp Notifications
* Description: Kirim notifikasi WhatsApp otomatis setiap ada pesanan baru via Kirem API
* Version: 1.0.0
* Author: Tim Anda
*/
// Cegah akses langsung
if (!defined('ABSPATH')) {
exit;
}
// ============================================
// KONFIGURASI โ Ubah sesuai pengaturan Anda
// ============================================
define('KIREM_API_KEY', 'kirem_live_xxxxxxxxxxxxxxxx');
define('KIREM_API_URL', 'https://api.kirem.co/v1/messages');
define('KIREM_TEMPLATE_NAME', 'notif_pesanan_baru');
define('STORE_NAME', 'Toko Online Anda');
/**
* Hook ke aksi woocommerce_new_order โ dipicu setiap pesanan baru dibuat
*/
add_action('woocommerce_new_order', 'kirem_send_order_notification', 10, 2);
function kirem_send_order_notification($order_id, $order) {
// Ambil data pesanan
$customer_phone = $order->get_billing_phone();
$customer_name = $order->get_billing_first_name();
$order_total = number_format($order->get_total(), 0, ',', '.');
// Bersihkan nomor telepon โ hapus awalan 0 atau +62
$customer_phone = preg_replace('/[^0-9]/', '', $customer_phone);
if (strpos($customer_phone, '0') === 0) {
$customer_phone = '62' . substr($customer_phone, 1);
}
// Siapkan payload sesuai format Kirem
$payload = [
'messaging_product' => 'whatsapp',
'recipient_type' => 'individual',
'to' => $customer_phone,
'type' => 'template',
'template' => [
'name' => KIREM_TEMPLATE_NAME,
'language' => [
'code' => 'id'
],
'components' => [
[
'type' => 'body',
'parameters' => [
['type' => 'text', 'text' => $customer_name],
['type' => 'text', 'text' => STORE_NAME],
['type' => 'text', 'text' => (string) $order_id],
['type' => 'text', 'text' => 'Rp ' . $order_total],
]
]
]
]
];
// Kirim ke Kirem API
$response = wp_remote_post(KIREM_API_URL, [
'headers' => [
'Authorization' => 'Bearer ' . KIREM_API_KEY,
'Content-Type' => 'application/json',
],
'body' => json_encode($payload),
'timeout' => 30,
]);
// Log hasil (opsional)
if (is_wp_error($response)) {
error_log('Kirem Notification Error: ' . $response->get_error_message());
} else {
$body = json_decode(wp_remote_retrieve_body($response), true);
$message_id = $body['data']['messages'][0]['id'] ?? 'unknown';
error_log("Kirem Notification Sent. Order #{$order_id}, WAID: {$message_id}");
}
}
๐ง Langkah 3: Aktivasi Plugin
- Upload folder
kirem-woocommerce-notifke direktoriwp-content/plugins/di WordPress Anda - Masuk ke Dasbor WordPress > Plugins
- Cari "Kirem WooCommerce WhatsApp Notifications" dan klik Activate
- Plugin langsung aktif โ tidak ada halaman pengaturan tambahan
๐งช Langkah 4: Uji Coba
- Buka toko WooCommerce Anda di browser (mode incognito)
- Lakukan pemesanan fiktif dengan nomor WhatsApp Anda sendiri
- Setelah checkout selesai, periksa WhatsApp Anda โ notifikasi akan masuk dalam hitungan detik
Jika tidak menerima notifikasi:
- Periksa log PHP WordPress (
wp-content/debug.log) untuk error - Pastikan API Key masih aktif di Dasbor Kirem
- Pastikan templat
notif_pesanan_barusudahAPPROVED
๐จ Kustomisasi Lanjutan
Menambahkan Detail Produk ke Pesan
Perbarui komponen body pada templat dan kode untuk menyertakan daftar produk:
Templat (tambahkan variabel {{5}} untuk daftar produk):
{
"type": "BODY",
"text": "Halo {{1}}, terima kasih telah berbelanja di {{2}}!\n\nPesanan #{{3}}\nTotal: Rp {{4}}\n\nProduk:\n{{5}}"
}
Kode โ bangun daftar produk:
// Di dalam fungsi kirem_send_order_notification, tambahkan:
$items = $order->get_items();
$product_list = '';
foreach ($items as $item) {
$product_name = $item->get_name();
$quantity = $item->get_quantity();
$product_list .= "- {$product_name} x{$quantity}\n";
}
// Tambahkan parameter ke-5:
['type' => 'text', 'text' => $product_list],
Menambahkan Pengaturan Nomor Admin di WooCommerce
Tambahkan halaman pengaturan sederhana di WooCommerce > Settings:
// Tambahkan tab pengaturan
add_filter('woocommerce_get_sections_advanced', function($sections) {
$sections['kirem_notif'] = 'Kirem WhatsApp';
return $sections;
});
// Field pengaturan
add_filter('woocommerce_get_settings_advanced', function($settings, $current_section) {
if ($current_section === 'kirem_notif') {
return [
[
'title' => 'Pengaturan Notifikasi WhatsApp',
'type' => 'title',
'id' => 'kirem_notif_options'
],
[
'title' => 'Nomor Admin',
'desc' => 'Nomor WhatsApp yang akan menerima notifikasi setiap pesanan baru',
'id' => 'kirem_admin_phone',
'type' => 'text',
'default' => '',
],
[
'type' => 'sectionend',
'id' => 'kirem_notif_options'
]
];
}
return $settings;
}, 10, 2);
โ ๏ธ Catatan Penting
- Pastikan nomor telepon pelanggan menggunakan format internasional (contoh:
62812345678) - WhatsApp membatasi pengiriman pesan templat dalam jendela 24 jam. Untuk pesanan yang dibuat oleh pelanggan yang belum pernah chat, gunakan templat
MARKETINGatauUTILITYyang telah disetujui - Jangan kirim notifikasi ke nomor yang tidak valid โ ini dapat mempengaruhi rating kualitas akun WhatsApp Anda