Bila tamu membuka link berkunci dari Kirim Kit lalu Access Gate menampilkan "Nama tamu tidak ditemukan dalam daftar undangan resmi", lihat address bar. Bila
&key=berubah menjadi%26key%3D, nama tamu dirusak oleh skrip tambahan di halaman undangan, biasanya bawaan template atau kode kustom. Hapus skrip yang memuat ulang link, atau pasang skrip kecil di<head>bila skrip itu tertanam di plugin, lalu tes ulang dari jendela incognito.
Access Gate dan kunci tamu hanya ada di WeddingPress v4.
Gejala yang Terlihat
Klien mengirim link berkunci dari Kirim Kit lewat kode [link-magic]. Di pesan WhatsApp, linknya terlihat benar:
https://websiteundangan.com/andy-zhea?to=Dimas%20Pratama&key=xxxxxxxxxx
Begitu dibuka, layar kunci menampilkan "Nama tamu tidak ditemukan dalam daftar undangan resmi." tanpa kolom PIN, dan address bar berubah menjadi:
https://websiteundangan.com/andy-zhea/?to=Dimas%20Pratama%26key%3Dxxxxxxxxxx
Perbedaannya ada di bagian setelah nama. &key= sudah berubah menjadi %26key%3D, jadi gerbang membaca nama tamu sebagai "Dimas Pratama&key=xxxxxxxxxx". Nama itu tentu tidak ada di daftar tamu.
Kalau dibiarkan, semua tamu yang menerima link berkunci akan ditolak gerbang. Klien juga sering mengira daftar tamunya yang salah, lalu mengubah data yang sebenarnya sudah benar.
Penyebabnya: Skrip yang Membaca Seluruh Teks Setelah ?to=
Access Gate membaca nama dari ?to= dan kunci dari &key= sebagai dua parameter terpisah. Sebagian template undangan menyertakan skrip tambahan supaya nama yang mengandung tanda "&", misalnya "Andy & Zhea", tetap utuh walau dikirim tanpa dikodekan. Skrip seperti ini mengambil semua teks setelah ?to= sebagai nama, lalu memuat ulang halaman. Contoh potongannya:
if(q.includes("?to=")&&q.includes("&")&&!q.includes("%26")){
let n=decodeURIComponent(q.split("?to=")[1]);
location.replace(location.pathname+"?to="+encodeURIComponent(n));
}
Akibatnya &key= ikut masuk ke nama dan kunci tamu hilang. Skrip yang sama juga merusak link yang dibuka dari Facebook, karena Facebook menambahkan &fbclid=... di belakang link.
Link dari Kirim Kit dan Kirim Kit 2 tidak membutuhkan skrip seperti ini. Keduanya sudah mengodekan nama tamu, termasuk tanda "&" yang menjadi %26.
Cara Memastikan Penyebabnya
Langkah ini tidak memakai jatah perangkat tamu:
- Buka halaman undangan di komputer, lalu tekan Ctrl+U untuk melihat sumber halaman.
- Tekan Ctrl+F, lalu cari
location.replace. - Bila muncul skrip yang mirip potongan di atas, itulah penyebabnya.
Cara Memperbaiki
- Temukan tempat skrip itu dipasang. Biasanya di salah satu tempat berikut:
- Elementor > Custom Code (Elementor Pro);
- widget HTML di halaman undangan atau di template Theme Builder;
- pengaturan plugin template undangan, atau plugin penyisip kode header dan footer.
Bila skrip tertanam di plugin template dan tidak bisa diubah dari pengaturannya, lewati langkah 2 dan 3, lalu pakai salah satu cara di bagian Bila Skrip Tertanam di Plugin Template. Laporkan juga ke pembuat template agar skripnya diperbaiki.
- Hapus bagian yang memuat ulang link (
location.replace). Bila skrip itu hanya dipakai untuk menulis nama tamu ke elemen ber-classnamatamu, hapus seluruhnya dan pakai Custom Nama Tamu Dinamis (WDPCNT) di tab Script Penunjang pada Widget Manager. Script WeddingPress ini menyala secara bawaan dan mengganti teks "Tamu Undangan" di elemen tersebut. Pastikan teks elemennya memuat "Tamu Undangan", atau sesuaikan Teks Default (Fallback). - Bila skrip template tetap dibutuhkan, ganti dengan versi yang membaca parameter secara aman:
<script>
(function(){
var n = new URLSearchParams(location.search).get("to");
if (n) document.querySelectorAll(".namatamu").forEach(function(e){
while (e.children.length) e = e.children[0];
e.textContent = n;
});
})();
</script>
- Bersihkan cache dari plugin cache dan Cloudflare bila dipakai, supaya halaman memuat skrip yang baru.
- Tes ulang dari jendela incognito yang tidak login dengan link berkunci salah satu tamu. Address bar tidak lagi berisi
%26key%3D, dan cover tampil dengan nama tamu. Tes ini memakai satu jatah perangkat di mode Device Lock dan Keamanan Penuh, jadi setelahnya pilih Reset Data Kunjungan pada tamu itu di Access Tracker Dashboard.
Bila Skrip Tertanam di Plugin Template
Skrip yang tertanam di file plugin tidak bisa dihapus dari pengaturan. Mengubah file plugin secara langsung juga tidak disarankan, karena perubahannya hilang saat plugin diperbarui. Ada dua cara tanpa menyentuh plugin tersebut.
Cara 1: Skrip kecil di <head> (disarankan)
Skrip ini memindahkan to ke urutan terakhir tanpa memuat ulang halaman. Misalnya ?to=Dimas%20Pratama&key=xxxxxxxxxx menjadi ?key=xxxxxxxxxx&to=Dimas+Pratama. Karena dipasang di <head>, skrip ini berjalan lebih dulu daripada skrip template di bagian bawah halaman. Link tidak lagi diawali ?to=, jadi skrip template tidak mengubah apa-apa, dan nama tamu tetap tampil.
Pasang kode di bawah ini di salah satu tempat berikut, cukup satu saja:
- Elementor Pro: buka Elementor > Custom Code dan tambahkan kode baru. Beri judul, misalnya "Urutan parameter nama tamu", tempel kode, pilih Location
<head>, klik Publish, lalu pilih kondisi Entire Site. - WPCode: buka Code Snippets > Header & Footer, lalu tempel kode di baris baru pada kotak Header. Kode lain yang sudah ada di kotak itu jangan dihapus. Klik Save Changes, dan pastikan Testing Mode tidak menyala, karena selama menyala perubahan hanya terlihat oleh admin.
- Plugin penyisip kode lain: taruh kode di bagian header untuk seluruh situs.
<script>
(function(){
var s = location.search;
if (s.indexOf('?to=') !== 0 || s.indexOf('&') === -1) return;
var p = new URLSearchParams(s), to = p.get('to');
p.delete('to');
p.append('to', to);
history.replaceState(history.state, '', location.pathname + '?' + p.toString() + location.hash);
})();
</script>
Setelah kode terpasang, bersihkan cache, lalu tes ulang seperti langkah 5 di bagian Cara Memperbaiki.
Cara ini juga memperbaiki link ?to= yang sudah terlanjur dikirim ke tamu, link dari tombol Salin Link di dashboard pelacakan, dan link yang dibuka dari Facebook. Link yang hanya berisi ?to= tanpa parameter lain tidak diubah. Spasi pada nama tamu di address bar tampil sebagai +, misalnya Dimas+Pratama. Ini normal dan tetap terbaca.
Cara ini bekerja untuk skrip seperti contoh di atas, yang hanya bereaksi pada link berawalan ?to= dan dimuat sesudah <head>.
Cara 2: Ganti Parameter URL ke ?kepada=
Cara ini tanpa kode. Di Kirim Kit 2, ubah Parameter URL menjadi ?kepada=. Di Kirim Kit, pilih kepada di kolom Pilih. Access Gate, cover Invitation, dan Custom Nama Tamu Dinamis (WDPCNT) membaca ?kepada=, sedangkan skrip pada contoh di atas hanya bereaksi pada ?to=.
Batasannya:
- Link
?to=yang sudah terkirim tetap bermasalah. Buat ulang linknya dari Kirim Kit, lalu kirim lagi. - Tombol Salin Link di Access Tracker Dashboard dan menu Access & Passkey selalu membuat link
?to=. Ganti?to=menjadi?kepada=secara manual sebelum mengirimnya. - Elemen nama milik template yang hanya membaca
?to=tidak terisi. WDPCNT hanya mengisi elemen ber-classnamatamuyang memuat teks "Tamu Undangan".
Bila Nama Masih Tidak Ditemukan
Bila address bar sudah benar tetapi pesan yang sama tetap muncul, nama itu memang belum terdaftar:
- Pastikan nama ada di Google Sheet, BukuTamu Pro, atau file CSV dengan ejaan yang sama. Huruf besar dan kecil boleh berbeda.
- Tamu baru di Google Sheet terbaca paling lambat 5 menit. Tekan Sinkronkan Tamu di dashboard pelacakan agar seluruh daftar terbaru masuk.
- Tamu yang hanya dibuat di Kirim Kit ikut terdaftar bila generator dibuka dengan PIN Klien. Tanpa PIN Klien, hanya admin yang login yang bisa menambah tamu baru lewat Kirim Kit.
Contoh: Undangan Privat Andy & Zhea
Vendor memasang template dari pihak lain untuk undangan privat Andy & Zhea dengan mode Keamanan Penuh. Andy mengirim link berkunci ke Dimas Pratama, tetapi Dimas ditolak gerbang dan address bar-nya berisi %26key%3D. Vendor membuka sumber halaman, menemukan skrip location.replace bawaan template di widget HTML, menghapusnya, lalu membersihkan cache. Setelah Reset Data Kunjungan untuk Dimas, link yang sama langsung membuka cover bertuliskan nama Dimas.
Tips & Praktik Terbaik
- Sebelum memakai template dari pihak lain untuk undangan privat, cari
location.replacedi sumber halamannya. - Kirim satu link uji ke nomor sendiri sebelum mengirim ke semua tamu.
- Hapus skrip seperti ini juga di undangan tanpa Access Gate. Nama tamu yang dibuka dari Facebook tetap ikut rusak.
- Untuk menguji, jangan memakai akun admin yang sedang login. Gerbang memperlakukan pengelola yang login secara berbeda, dan kunjungannya tidak dicatat di dashboard pelacakan.