WordPress – Buat tabel database dan insert data dengan HTML form

Tutorial WordPress: membuat tabel database MySQL, dan menyisipkan konten menggunakan WordPress Class wpdb:
Dalam tutorial ini, kita akan belajar:

  • Cara membuat tabel database baru di WordPress
  • Cara memasukkan data ke tabel database yang baru dibuat ini

Anda dapat menggunakan proses ini untuk merekam informasi tentang audiens Anda atau bahkan menggunakannya untuk sebuah plugin, dll.

Pertama, dan dengan PHP, kode berikut melakukan kueri MySQL dan membuat tabel database baru jika belum ada, dan dari tutorial ini, nama tabelnya adalah my_table yang tentu saja Anda bisa ubah ke yang lain:

global $wpdb;
// creates my_table in database if not exists
$table = $wpdb->prefix . "my_table";
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE IF NOT EXISTS $table (
    `id` mediumint(9) NOT NULL AUTO_INCREMENT,
    `name` text NOT NULL,
UNIQUE (`id`)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );

Selanjutnya, kami membuat formulir HTML sederhana yang berisi 2 input dasar, satu untuk teks agar pemirsa mengetik apa yang kami minta, dan satu lagi untuk mengirimkan formulir:

<form action="#v_form" method="post" id="v_form">
    <label for="visitor_name"><h3>Hello there! What is your name?</h3></label>
    <input type="text" name="visitor_name" id="visitor_name" />
    <input type="submit" name="submit_form" value="submit" />
</form>

Anda mungkin telah memperhatikan bahwa tindakan tersebut tidak lain adalah hash, karena kami tidak bekerja dengan file PHP di sini dan hal-hal rumit ..

Langkah berikut adalah yang terakhir yang mendeteksi apa yang telah diketik oleh pemirsa, dan memasukkannya ke tabel database menggunakan $wpdb-> insert function class WordPress. Jika nama tidak disetel (dibiarkan kosong oleh pemirsa), tidak akan ada sisipan, hanya pemberitahuan bagi pengguna untuk mengisi bidang itu:

if ( isset( $_POST["submit_form"] ) && $_POST["visitor_name"] != "" ) {
    $table = $wpdb->prefix."my_table";
    $name = strip_tags($_POST["visitor_name"], "");
    $wpdb->insert(
        $table,
        array(
            'name' => $name
        )
    );
    $html = "<p>Your name <strong>$name</strong> was successfully recorded. Thanks!!</p>";
}
// if the form is submitted but the name is empty
if ( isset( $_POST["submit_form"] ) && $_POST["visitor_name"] == "" )
    $html .= "<p>You need to fill the required fields.</p>";

Kode lengkap
Sekarang untuk membuatnya lebih mudah digunakan, kita akan membuat kode pendek cepat untuk digunakan, jadi tambahkan kode berikut dalam file functions.php Anda, pastikan Anda bekerja pada tema anak WordPress:

function elh_insert_into_db() {
    global $wpdb;
    // creates my_table in database if not exists
    $table = $wpdb->prefix . "my_table";
    $charset_collate = $wpdb->get_charset_collate();
    $sql = "CREATE TABLE IF NOT EXISTS $table (
        `id` mediumint(9) NOT NULL AUTO_INCREMENT,
        `name` text NOT NULL,
    UNIQUE (`id`)
    ) $charset_collate;";
    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql );
    // starts output buffering
    ob_start();
    ?>
    <form action="#v_form" method="post" id="v_form">
        <label for="visitor_name"><h3>Hello there! What is your name?</h3></label>
        <input type="text" name="visitor_name" id="visitor_name" />
        <input type="submit" name="submit_form" value="submit" />
    </form>
    <?php
    $html = ob_get_clean();
    // does the inserting, in case the form is filled and submitted
    if ( isset( $_POST["submit_form"] ) && $_POST["visitor_name"] != "" ) {
        $table = $wpdb->prefix."my_table";
        $name = strip_tags($_POST["visitor_name"], "");
        $wpdb->insert(
            $table,
            array(
                'name' => $name
            )
        );
        $html = "<p>Your name <strong>$name</strong> was successfully recorded. Thanks!!</p>";
    }
    // if the form is submitted but the name is empty
    if ( isset( $_POST["submit_form"] ) && $_POST["visitor_name"] == "" )
        $html .= "<p>You need to fill the required fields.</p>";
    // outputs everything
    return $html;
    
}
// adds a shortcode you can use: [insert-into-db]
add_shortcode('elh-db-insert', 'elh_insert_into_db');

Referensi :



5 1 vote
Article Rating
Subscribe
Notify of
guest

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.

0 Comments
Inline Feedbacks
View all comments