Otomasi Pembuatan Subdomain Undangan Pasca Checkout WooCommerce

Otomasi Subdomain Pasca Checkout WooCommerce adalah alur kerja nirsentuh (zero-touch automation) yang mengubah website agensi menjadi platform SaaS undangan pernikahan mandiri. Ketika pesanan dinyatakan lunas oleh payment gateway, sistem secara otomatis mengkloning template Elementor yang dipilih, menetapkan subdomain baru di WDP Link Post, dan menerbitkan undangan dalam hitungan detik.


Membangun Bisnis Undangan Digital yang Dapat Diskalakan

Menangani pesanan undangan pernikahan secara manual (membuat halaman baru, menyalin desain, menyetel subdomain, dan mengirimkan link ke WhatsApp klien) membatasi kapasitas bisnis Anda. Vendor rata-rata hanya mampu melayani 5 hingga 10 pesanan per hari sebelum kelelahan operasional.

Dengan mengintegrasikan WooCommerce + WDP Link Post:

  1. Pasangan pengantin memilih tema desain di katalog website Anda.
  2. Memasukkan nama panggilan pengantin dan pilihan subdomain yang diinginkan pada halaman checkout.
  3. Membayar secara otomatis via QRIS atau Virtual Account.
  4. Dalam 5 detik setelah pembayaran sukses, sistem langsung menerbitkan undangan baru dan mengirimkan link ke WhatsApp pengantin tanpa campur tangan admin agensi.
Diagram Alur Otomasi Pembuatan Subdomain Pasca Checkout WooCommerce
Gambar 2: Empat tahapan otomatisasi dari checkout klien, pembayaran, kloning template, hingga notifikasi WhatsApp.

Implementasi Teknis Langkah demi Langkah

Langkah 1: Tambahkan Custom Field Slug di Checkout WooCommerce

Tambahkan fungsi berikut di berkas functions.php tema anak (child theme) atau melalui plugin code snippet:

PHP
// 1. Tambahkan input slug subdomain pada form checkout
add_filter('woocommerce_checkout_fields', function($fields) {
    $fields['billing']['billing_subdomain_slug'] = [
        'type'        => 'text',
        'label'       => 'Pilihan Subdomain Undangan',
        'placeholder' => 'contoh: andy-zhea',
        'required'    => true,
        'class'       => ['form-row-wide'],
        'clear'       => true,
        'priority'    => 25
    ];
    return $fields;
});

// 2. Simpan nilai slug ke meta order WooCommerce
add_action('woocommerce_checkout_update_order_meta', function($order_id) {
    if (!empty($_POST['billing_subdomain_slug'])) {
        $clean_slug = sanitize_title($_POST['billing_subdomain_slug']);
        update_post_meta($order_id, '_billing_subdomain_slug', $clean_slug);
    }
});

Langkah 2: Buat Hook Otomasi saat Status Order "Completed"

Ketika pembayaran dinyatakan sukses oleh sistem perbankan:

PHP
add_action('woocommerce_order_status_completed', function($order_id) {
    $order = wc_get_order($order_id);
    $slug  = get_post_meta($order_id, '_billing_subdomain_slug', true);
    if (empty($slug)) return;

    // Tentukan ID Template Master yang dibeli klien
    $template_master_id = 120; // ID Postingan Template Master Elementor

    // Duplikasi postingan template menjadi postingan baru
    $new_post_id = wp_insert_post([
        'post_title'   => 'Undangan ' . esc_html($slug),
        'post_name'    => $slug,
        'post_status'  => 'publish',
        'post_type'    => 'page',
        'post_author'  => $order->get_user_id() ?: 1,
        'post_content' => get_post_field('post_content', $template_master_id),
    ]);

    if (!is_wp_error($new_post_id)) {
        // Salin seluruh metadata Elementor
        $elementor_data = get_post_meta($template_master_id, '_elementor_data', true);
        $page_settings  = get_post_meta($template_master_id, '_elementor_page_settings', true);
        
        update_post_meta($new_post_id, '_elementor_data', $elementor_data);
        update_post_meta($new_post_id, '_elementor_page_settings', $page_settings);
        update_post_meta($new_post_id, '_elementor_edit_mode', 'builder');
        update_post_meta($new_post_id, '_wp_page_template', 'elementor_canvas');

        // Daftarkan ke router WDP Link Post sebagai Tier 1 Subdomain
        update_post_meta($new_post_id, '_wdplp_subdomain', $slug);
        update_post_meta($new_post_id, '_wdplp_tier', 'tier1');
        update_post_meta($new_post_id, '_wdplp_created_via', 'woocommerce_saas');

        // Simpan referensi ID undangan baru ke order
        update_post_meta($order_id, '_created_invitation_id', $new_post_id);
    }
});

Studi Kasus Operasional: Checkout Pasangan Andy & Zhea

Pasangan Andy & Zhea membeli paket undangan pernikahan di website agensi:

  1. Pada halaman checkout, Andy memilih metode pembayaran QRIS dan memasukkan slug andy-zhea.
  2. Andy memindai kode QRIS melalui aplikasi m-banking miliknya.
  3. Dalam 2 detik setelah pembayaran berhasil, webhook gateway mengubah status order menjadi Completed.
  4. WDP Link Post menduplikasi postingan master ID 120, menyetel meta _wdplp_subdomain = andy-zhea, dan mempublikasikannya seketika.
  5. Andy menerima notifikasi WhatsApp: "Selamat Kak Andy! Website undangan Kakak telah aktif di https://andy-zhea.websiteundangan.com".

Tips & Praktik Terbaik

Pasang Validasi Unik via AJAX pada Checkout: Gunakan script JavaScript sederhana pada form checkout yang memanggil endpoint REST API WDP Link Post untuk mengecek apakah slug yang diketik klien sudah terpakai sebelum mereka menekan tombol bayar.
Selalu Gunakan Template Berbasis Elementor Canvas: Pastikan template master Anda menggunakan atribut _wp_page_template = elementor_canvas agar halaman baru yang terduplikasi bebas dari header dan footer tema bawaan WordPress.

Pertanyaan yang Sering Diajukan (FAQ)

Bagaimana cara menangkap input pilihan subdomain dari klien saat proses checkout? +
Anda dapat menambahkan custom checkout field pada formulir pemesanan WooCommerce (misalnya menggunakan filter woocommerce_checkout_fields atau plugin WooCommerce Checkout Field Editor) dengan nama field billing_slug.
Kapan hook otomatisasi pembuatan postingan undangan dipicu oleh WooCommerce? +
Hook terbaik untuk dipicu adalah woocommerce_order_status_completed atau woocommerce_payment_complete. Hook ini memastikan postingan undangan baru dibuat HANYA setelah pembayaran klien terkonfirmasi lunas oleh payment gateway.
Bagaimana cara menduplikasi desain template Elementor yang dipilih klien? +
Fungsi PHP akan membaca ID postingan master template pilihan klien, menyalin nilai post_content dan seluruh metadata Elementor (_elementor_data, _elementor_page_settings), lalu menyimpannya ke ID postingan baru milik pengantin.
Bagaimana jika klien memasukkan slug subdomain yang sudah digunakan oleh pasangan lain? +
Anda dapat memasang validasi AJAX pada field checkout WooCommerce yang memeriksa tabel database via REST API WDP Link Post. Jika slug sudah terpakai, sistem akan menampilkan peringatan merah sebelum pesanan dapat dibayar.
Apakah pengantin langsung menerima pesan WhatsApp berisi link undangan setelah checkout? +
Bisa. Anda dapat mengintegrasikan hook pemesanan ini dengan gateway WhatsApp (seperti Wafly atau Fonnte) untuk mengirimkan pesan selamat datang otomatis lengkap dengan link subdomain baru.