ID formulir

WordPress

Tambahkan formulir Ikiform ke WordPress dengan blok Custom HTML, atau daftarkan shortcode agar penulis mana pun bisa menaruh formulir yang sama di mana saja.

Plugin formulir menangani kiriman di dalam WordPress: formulirnya mengirim kembali ke situs Anda sendiri, lalu plugin menyimpan dan mengirim hasilnya lewat email. Formulir HTML biasa yang diarahkan ke Ikiform melewati plugin, database, dan penyiapan email, serta tetap berfungsi di halaman yang di-cache karena tidak membawa nonce WordPress.

Siapa yang bisa menempel formulir

WordPress memfilter HTML di post dan page. Untuk siapa pun yang tidak punya kapabilitas unfiltered_html, WordPress menghapus <form> dan <input> saat konten disimpan.

SitusSiapa yang bisa menyimpan formulir di blok Custom HTML
Self-hosted, satu situsAdministrator dan Editor
Multisite self-hostedHanya Super Admin
DISALLOW_UNFILTERED_HTML diatur ke true di wp-config.phpTidak ada. Gunakan shortcode.
WordPress.comSiapa pun yang bisa mengedit, tetapi hanya di paket berbayar dengan fitur hosting aktif. Fitur hosting aktif saat Anda memasang plugin. Di paket lain, tag-nya dihapus.

Blok Custom HTML

  1. Tambahkan blok

    Di block editor, ketik /html dan pilih Custom HTML. Untuk menaruh formulir di setiap halaman, tambahkan blok ke template part seperti footer di Site Editor.

  2. Tempel formulir

    Custom HTML
    <form class="ikiform" action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post">
      <p><label>Name <input name="name" autocomplete="name" required></label></p>
      <p><label>Email <input name="email" type="email" autocomplete="email" required></label></p>
      <p><label>Message <textarea name="message" rows="5"></textarea></label></p>
      <input type="hidden" name="_redirect" value="https://example.com/thank-you/">
      <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden>
      <p><button type="submit" class="wp-element-button">Send</button></p>
    </form>

    wp-element-button memberi tombol gaya tombol tema Anda di block theme. Formulir mewarisi font dan gaya input tema Anda, jadi biasanya tidak butuh CSS.

  3. Pratinjau, lalu perbarui

    Gunakan tab Preview pada blok, lalu simpan. Muat ulang editor dan buka bloknya lagi: jika tag <form> dan <input> hilang, akun Anda tidak bisa menyimpannya. Gunakan shortcode di bawah.

_redirect hanya berfungsi jika formulir punya domain yang diizinkan yang mencakup situs Anda; jika tidak, pengunjung melihat halaman terima kasih Ikiform. Anda juga bisa mengatur Redirect after submit di pengaturan formulir dan menghapus input tersembunyinya.

Shortcode

Shortcode menyimpan HTML di PHP, yang tidak disentuh filter konten, jadi author dan contributor juga bisa menaruh formulir. Simpan ini sebagai must-use plugin, yang dimuat WordPress secara otomatis:

wp-content/mu-plugins/ikiform.php
<?php

add_shortcode('ikiform', function ($atts) {
    $atts = shortcode_atts([
        'id' => 'frm_xxxxxxxxxxxxxxxx',
        'subject' => '',
        'redirect' => '',
        'button' => 'Send',
    ], $atts, 'ikiform');

    ob_start();
    ?>
    <form class="ikiform" action="<?php echo esc_url('https://ikiform.com/f/' . rawurlencode($atts['id'])); ?>" method="post">
      <p><label>Email <input name="email" type="email" autocomplete="email" required></label></p>
      <p><label>Message <textarea name="message" rows="5"></textarea></label></p>
      <?php if ($atts['subject']) : ?>
        <input type="hidden" name="_subject" value="<?php echo esc_attr($atts['subject']); ?>">
      <?php endif; ?>
      <?php if ($atts['redirect']) : ?>
        <input type="hidden" name="_redirect" value="<?php echo esc_url($atts['redirect']); ?>">
      <?php endif; ?>
      <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden>
      <p><button type="submit" class="wp-element-button"><?php echo esc_html($atts['button']); ?></button></p>
    </form>
    <?php
    return ob_get_clean();
});

Lalu tambahkan blok Shortcode, atau ketik shortcode di konten mana pun:

Shortcode block
[ikiform subject="New enquiry" redirect="https://example.com/thank-you/"]
  • Berikan id untuk memakai formulir lain: [ikiform id="frm_..."].
  • Ubah field di PHP agar sesuai dengan formulir Anda. Setiap input yang punya name akan disimpan.
  • Di classic editor, tempel HTML mentah hanya di tab Text. Visual editor menambahkan tag <p> dan <br> di dalam formulir. Shortcode menghindari masalah ini.

Domain yang diizinkan

Cantumkan setiap alamat tempat situs merespons. Situs WordPress sering punya beberapa alamat selama Anda membangunnya.

Tempat formulir berjalanTambahkan ke Domain yang diizinkan
Domain live Andaexample.com, yang juga mencakup www.example.com
Alamat WordPress.comyour-site.wordpress.com, atau your-site.wpcomstaging.com untuk situs staging
Situs staging dari host AndaHost staging dari dashboard host Anda
Pengembangan lokallocalhost, atau nama host lokal yang diberikan tool Anda, seperti my-site.local
  • Jangan pernah menambahkan wordpress.com atau wpcomstaging.com saja. Setiap situs di host itu akan cocok, termasuk milik orang lain.

Daftar periksa pengujian

  1. Keluar, atau buka jendela privat. Admin yang sedang masuk melewati sebagian cache dan melihat halaman yang sedikit berbeda.
  2. Kirim formulir dan pastikan kirimannya ada di Ikiform, sebagai diterima, bukan spam.
  3. Pastikan Anda mendarat di halaman terima kasih Anda. Jika Anda melihat halaman Ikiform, situs belum ada di domain yang diizinkan atau URL _redirect bukan https:.
  4. Edit halaman sebagai pengguna non-admin dan pastikan formulir tetap utuh setelah disimpan, atau gunakan shortcode.

Pemecahan masalah

Yang Anda lihatAlasanSolusi
Field formulir hilang setelah disimpan, hanya label yang tersisaAkun Anda tidak punya unfiltered_html, atau paket WordPress.com memfilter form dan inputGunakan shortcode, atau minta Administrator menempel bloknya.
Tag <p> dan <br> yang nyasar merusak layoutMode visual classic editor memformat ulang HTMLGunakan blok Custom HTML atau shortcode.
Console browser menyatakan data formulir ditolak karena direktif form-actionPlugin keamanan atau host Anda mengirim header Content-Security-PolicyTambahkan https://ikiform.com ke form-action, dan ke connect-src jika Anda mengirim dengan fetch.
Kiriman masuk ke filter spam dengan origin_mismatchHalaman yang mengirim tidak ada di domain yang diizinkan formulirTambahkan host dari tabel di atas. Jika Reject dipilih, kiriman yang sama mendapat 403 origin_not_allowed.
422 validation_failed yang mencantumkan field UnknownFormulir punya field yang didefinisikan dan salah satu nama input tidak termasuk di dalamnyaGanti nama input menjadi ID field, atau awali dengan _ jika hanya penanda untuk Anda.