🚀 Buat Undangan Elementor Otomatis
Pilih pesanan dari Spreadsheet dan pilih Tema Elementor Anda. Sistem akan menduplikasi halaman tema tersebut di WordPress dan mengisi seluruh data + foto pengantin secara otomatis.
ID halaman/post Tema Elementor yang akan digandakan.
Otomatis menjadi: domain.com/rizky-annisa
⚙️ Cara Kerja di Elementor Anda (Pasang 1x Saja)
- Di halaman Master Tema Elementor Anda, beri kode penanda pada teks/link yang ingin diganti otomatis (klik kode di bawah untuk menyalin):
{{invoice}}{{susunan_pengantin}}{{pria_nama_lengkap}}{{pria_nama_panggilan}}{{pria_instagram}}{{wanita_nama_lengkap}}{{wanita_nama_panggilan}}{{akad_hari_tanggal}}{{akad_tempat}}{{resepsi_hari_tanggal}}{{resepsi_tempat}}{{foto_pria}}{{foto_wanita}}{{foto_cover}}
- Pasang kode jembatan PHP di bawah ini ke WordPress Anda (bisa lewat plugin gratis WPCode / Code Snippets atau taruh di
functions.php). - Selesai! Setiap ada pesanan masuk di Spreadsheet, Anda tinggal klik tombol Buat & Terbitkan Undangan di samping.
/**
* SNIPPET OTOMATISASI UNDANGAN ELEMENTOR DARI SPREADSHEET
* Pasang di WPCode / Code Snippets / functions.php WordPress Anda
*/
add_action('rest_api_init', function () {
register_rest_route('undangan-auto/v1', '/create', array(
'methods' => 'POST',
'callback' => 'buat_undangan_elementor_otomatis',
'permission_callback' => '__return_true',
));
});
function buat_undangan_elementor_otomatis($request) {
$params = $request->get_json_params();
if (($params['secret'] ?? '') !== 'UNDANGAN-AUTO-2026') {
return new WP_REST_Response(array('status' => 'gagal', 'message' => 'Secret Key salah!'), 403);
}
$template_id = intval($params['template_id'] ?? 0);
$source_post = get_post($template_id);
if (!$source_post) {
return new WP_REST_Response(array('status' => 'gagal', 'message' => 'ID Tema Elementor tidak ditemukan!'), 404);
}
$replacements = $params['replacements'] ?? array();
$slug = sanitize_title($params['slug'] ?? 'undangan-' . time());
$title = sanitize_text_field($params['title'] ?? 'The Wedding');
// 1. Buat Post / Halaman Baru
$new_post_id = wp_insert_post(array(
'post_title' => $title,
'post_name' => $slug,
'post_status' => 'publish',
'post_type' => $source_post->post_type,
'post_content' => $source_post->post_content,
));
// 2. Salin seluruh Meta Elementor & ganti semua variabel {{...}}
$meta = get_post_meta($template_id);
foreach ($meta as $key => $values) {
foreach ($values as $value) {
if ($key === '_elementor_data') {
foreach ($replacements as $search => $replace) {
// Escape untuk format JSON Elementor
$json_replace = substr(json_encode((string)$replace), 1, -1);
$value = str_replace($search, $json_replace, $value);
}
update_post_meta($new_post_id, '_elementor_data', wp_slash($value));
} else {
update_post_meta($new_post_id, $key, maybe_unserialize($value));
}
}
}
// Bersihkan cache CSS Elementor agar desain langsung tampil sempurna
if (class_exists('\Elementor\Plugin')) {
\Elementor\Plugin::$instance->files_manager->clear_cache();
}
return new WP_REST_Response(array(
'status' => 'sukses',
'post_id' => $new_post_id,
'url' => get_permalink($new_post_id),
'edit_url' => admin_url('post.php?post=' . $new_post_id . '&action=elementor')
), 200);
}
📦 Generator File Template .JSON Elementor
Jika Anda mengekspor tema Elementor sebagai file .json, unggah file tersebut di bawah ini. Sistem akan otomatis mengganti semua teks variabel (atau teks contoh bawaan tema) dan link foto dengan data pelanggan dari Spreadsheet.
💡 Opsional: Ganti Teks Contoh (Dummy) di Tema Anda
Jika tema Elementor Anda belum memakai kode {{pria_nama_lengkap}} melainkan masih memakai nama contoh (misal: Rizky & Annisa), isi nama contoh di tema Anda di bawah ini agar ikut terganti otomatis:
📌 Di Mana Meletakkan Kode Otomatis di Elementor?
- Widget Heading / Text Editor: Ketik langsung kode seperti
{{pria_nama_lengkap}}atau{{akad_hari_tanggal}}pada kolom judul/teks di Elementor. - Widget Button (Tombol Maps / Streaming): Pada kolom Link tombol di Elementor, isi dengan
{{akad_google_maps}}atau{{link_streaming}}. - Foto Pengantin / Galeri: Klik kode
{{foto_pria}}di sebelah kanan untuk menyalin link gambarnya, atau gunakan fitur pengganti otomatis saat file.jsondiproses.
Daftar Kode Otomatis yang Didukung di Elementor:
Klik pada salah satu baris di bawah untuk menyalin kodenya ke Elementor Anda: