
1. Dapatkan ID produk
masuk ke Products → All Products, arahkan kursor ke nama produk → catat angka ID (contoh: 117).
2. Susun format link
https://domainmu.com/checkout/?add-to-cart=ID_PRODUK
Ganti https://domainmu.com/ dengan nama domain kamu, dan ID_PRODUK dengan ID produknya
Contoh: https://haydigital.go.id/checkout/?add-to-cart=117
3. Tentukan jumlah/quantity (Opsional)
Tambahkan &quantity=2 → https://haydigital.id/checkout/?add-to-cart=6512&quantity=2
4. Tambahkan UTM tracking setelah parameter (Opsional)
Jadinya: https://haydigital.id/checkout/?add-to-cart=6512&utm_source=ig&utm_medium=bio&utm_campaign=promo
5. Tempel link tersebut ke tombol di halaman
Bisa di Gutenberg: Button → Paste URL atau Elementor: Button → Link
6. Uji di mode incognito
klik link → pastikan halaman Checkout terbuka dengan produk sudah masuk ke keranjang.
Catatan:
- Jika produk sudah ada di keranjang, klik ulang link akan menambah kuantitas.
- Pastikan produk purchasable (tersedia stok, tidak di-draft) agar penambahan berhasil.
- Untuk produk variabel, gunakan ID variasi (bukan ID produk induk) dan sertakan atributnya, misal:
https://domainmu.com/checkout/?add-to-cart=ID_VARIASI&attribute_pa_size=m&attribute_pa_color=blue(gunakan slug atribut yang benar, contoh
attribute_pa_sizesesuai atribut di produk).
Menambahkan kupon otomatis
Jika ingin menambahkan kupon otomatis di link WooCommerce (misalnya saat add to cart atau checkout), kamu bisa pakai parameter kupon di URL.
Berikut penjelasan dan langkah-langkahnya 👇
1. Format dasarnya
Gunakan struktur seperti ini:
https://domainmu.com/checkout/?add-to-cart=ID_PRODUK&coupon_code=KODEKUPON
Contoh nyata:
https://haydigital.go.id/checkout/?add-to-cart=117&coupon_code=DISKONTHR
Saat link ini diklik:
- Produk dengan ID
117otomatis masuk ke keranjang - Kupon
DISKONTHRotomatis diterapkan di checkout
2. Jika tidak langsung ke checkout (hanya ke cart):
https://haydigital.go.id/cart/?add-to-cart=6512&coupon_code=DISKONTHR
Lebih disarankan langsung ke checkout biar prosesnya cepat.
3. Jika kupon tidak otomatis aktif
Beberapa tema atau plugin cache bisa mencegah penerapan otomatis kupon via URL.
Untuk mengatasinya, tambahkan snippet berikut agar WooCommerce mengenali parameter kupon dari URL 👇
// Auto-apply coupon from ?coupon_code=... (hardened)
add_action( 'wp', function () {
// Jalankan hanya di halaman Cart/Checkout
if ( ! ( is_cart() || is_checkout() ) ) {
return;
}
// Abaikan jika bukan GET (hindari bentrok POST di checkout) atau saat AJAX/REST
if ( $_SERVER['REQUEST_METHOD'] !== 'GET' || wp_doing_ajax() || ( defined('REST_REQUEST') && REST_REQUEST ) ) {
return;
}
// Pastikan ada parameter coupon_code
if ( empty( $_GET['coupon_code'] ) ) {
return;
}
// Pastikan cart siap & tidak kosong
if ( ! WC()->cart || WC()->cart->is_empty() ) {
return;
}
// Normalisasi kode kupon
$code = wc_format_coupon_code( wp_unslash( $_GET['coupon_code'] ) );
// Opsional: validasi eksistensi kupon untuk menghindari redirect sia-sia
if ( ! wc_get_coupon_id_by_code( $code ) ) {
return;
}
// Hindari apply berulang
if ( ! WC()->cart->has_discount( $code ) ) {
WC()->cart->apply_coupon( $code );
// Catatan: jika kupon tidak eligible (min spend, produk tidak cocok, expired),
// WooCommerce akan menaruh notice di session -> tetap tampil setelah redirect.
}
// Bersihkan hanya parameter coupon_code, biarkan parameter lain (mis. add-to-cart) tetap ada
$clean_url = remove_query_arg( array( 'coupon_code' ) );
// Hindari masalah header sent
if ( ! headers_sent() ) {
wp_safe_redirect( $clean_url );
exit;
}
}, 99 );
Tetap perhatikan hal berikut (di luar kode):
- Exclude cache untuk
/cart/dan/checkout/(plugin cache + CDN/Cloudflare). - Pastikan redirect/SSL/WWW tidak membuang query string.
- Checkout Blocks (WooCommerce Blocks) aman dengan hook ini, tapi jika pakai checkout kustom berbasis SPA/AJAX penuh, tes sekali—atau batasi ke classic checkout.
- Aturan kupon (min/max spend, include/exclude products, usage limit, dsb.) tetap berlaku—snippet tidak “memaksa” kupon jadi valid.
- Jika kamu tidak ingin kode kupon terekspos publik, pakai URL pendek + redirect server-side (seperti
/promo-nomad50→ redirect 302 ke URL lengkap).