Menyimpan Custom Field ke Database Saat di WordPress

Admin Studentport
18 October, 2024
Studentport Menyimpan Custom Field ke Database

Setelah menambahkan custom field dan validasi input pada formulir pendaftaran pengguna WordPress, langkah selanjutnya yang sangat penting adalah menyimpan data yang dimasukkan ke dalam database.

WordPress menawarkan metode yang fleksibel untuk menyimpan data tambahan melalui tabel user meta, yang memungkinkan kamu menyimpan informasi khusus tentang setiap pengguna.

Artikel ini akan menjelaskan cara menyimpan kolom khusus ke dalam database WordPress saat pengguna mendaftar dan menjelaskan bagaimana sistem WordPress mengelola data pengguna.

Mengapa Menyimpan Custom Field?

Daftar pengguna khusus digunakan untuk mengumpulkan informasi tambahan yang tidak termasuk dalam daftar standar WordPress, seperti nama depan, alamat, atau nomor telepon. Informasi ini sangat berguna untuk personalisasi, manajemen pengguna yang lebih baik, atau integrasi dengan layanan lain.

Dengan menyimpan informasi ini di database, Kamu dapat mengakses dan menggunakannya di berbagai bagian situs WordPress, seperti halaman profil pengguna atau halaman profil pengguna.

Baca Juga : 10 Cara Mendapatkan User ID Pada WordPress

Cara Menyimpan Custom Field Menggunakan Hook user_register

Hook user_register dapat digunakan untuk menyimpan data field custom ke database saat pengguna baru mendaftar.

Setelah pengguna mendaftar, WordPress secara otomatis memanggil hook ini. Ini adalah situasi di mana kita dapat menggunakan fungsi update_user_meta() untuk menyimpan data ke tabel usermeta.

Sebagai contoh, kita akan menyimpan data dari kolom pengguna yang disesuaikan "Nama Depan" ke dalam database. Contoh kodenya dapat ditemukan di sini:

add_action( 'user_register', 'simpan_custom_field', 10, 1 );
function simpan_custom_field( $user_id ) {
    // Cek apakah field 'first_name' telah diisi
    if ( isset( $_POST['first_name'] ) ) {
        // Simpan data 'first_name' ke tabel usermeta
        update_user_meta( $user_id, 'first_name', $_POST['first_name'] );
    }
}

Penjelasan Kode

  • add_action( 'user_register', 'simpan_custom_field', 10, 1 ): Di sini kita menggunakan hook user_register yang dipanggil setelah pengguna berhasil mendaftar. Fungsi simpan_custom_field akan dijalankan dengan mengambil user ID pengguna baru sebagai argumen.
  • if ( isset( $_POST['first_name'] ) ): Kondisi ini memeriksa apakah field "Nama Depan" (first_name) diisi pada form pendaftaran. Jika field tersebut ada, proses penyimpanan akan dilakukan.
  • update_user_meta( $user_id, 'first_name', $_POST['first_name'] ): Fungsi ini digunakan untuk menyimpan atau memperbarui nilai meta pengguna ke dalam tabel usermeta di database. Nilai ini disimpan dengan kunci 'first_name', yang nantinya bisa diakses di berbagai tempat dalam situs WordPress.

Mengapa Menggunakan usermeta?

Tabel usermeta WordPress dirancang khusus untuk menyimpan informasi pengguna tambahan. Ini adalah alat yang efektif untuk menyimpan data pengguna yang tidak termasuk dalam kolom standar, seperti nama pengguna atau email.

Menggunakan tabel usermeta memungkinkan kamu menambah atau mengubah informasi ini kapan saja tanpa mengubah struktur database inti WordPress.

Dengan menyimpan custom field di usermeta, kamu dapat:

  1. Mengakses Data Kapan Saja: Informasi yang disimpan dalam usermeta dapat diakses menggunakan fungsi WordPress seperti get_user_meta(). Ini memudahkan kamu untuk menampilkan data di halaman profil pengguna atau di bagian lain situs kamu.
  2. Menyimpan Berbagai Jenis Data: kamu dapat menyimpan berbagai jenis data, termasuk teks, angka, atau objek kompleks, yang akan dihubungkan langsung dengan ID pengguna.
  3. Memperbarui dan Menghapus Data dengan Mudah: kamu bisa memperbarui data pengguna dengan update_user_meta() atau menghapus data dengan delete_user_meta() kapan saja jika diperlukan.

Baca Juga : Membuat Tautan Kustom untuk Halaman Profil Pengguna di WordPress

Menyimpan Banyak Custom Field

Selain itu, Kamu dapat menyimpan lebih dari satu custom field sekaligus. Misalnya, jika kamu menambahkan "Nama Belakang" (last_name) dan "Nomor Telepon" (phone_number), kode yang digunakan untuk menyimpan semua field ini akan terlihat seperti ini:

add_action( 'user_register', 'simpan_banyak_custom_field', 10, 1 );
function simpan_banyak_custom_field( $user_id ) {
    // Simpan Nama Depan
    if ( isset( $_POST['first_name'] ) ) {
        update_user_meta( $user_id, 'first_name', $_POST['first_name'] );
    }
    
    // Simpan Nama Belakang
    if ( isset( $_POST['last_name'] ) ) {
        update_user_meta( $user_id, 'last_name', $_POST['last_name'] );
    }

    // Simpan Nomor Telepon
    if ( isset( $_POST['phone_number'] ) ) {
        update_user_meta( $user_id, 'phone_number', $_POST['phone_number'] );
    }
}

Kode ini akan membuat ketiga kolom - "Nama Depan", "Nama Belakang", dan "Nomor Telepon" - disimpan secara terpisah dalam usermeta. Dengan demikian, masing-masing kolom dapat diakses atau diperbarui secara terpisah.

Mengakses Data yang Disimpan

Dengan menggunakan fungsi get_user_meta(), Kamu dapat mengakses data setelah disimpan. Untuk contoh, Kamu dapat menggunakan kode berikut untuk menampilkan "Nama Depan" pengguna:

$first_name = get_user_meta( $user_id, 'first_name', true );
echo 'Nama Depan: ' . esc_html( $first_name );

Kode ini menampilkan nilai "first_name" dari metadata pengguna di halaman web. Data yang ditampilkan aman dari injeksi HTML atau JavaScript dengan menggunakan fungsi esc_html().

Kesimpulan

Langkah penting untuk mengelola data pengguna yang lebih rinci adalah menyimpan data field custom ke dalam database saat pendaftaran pengguna di WordPress.

Kamu dapat dengan mudah menyimpan data ini ke dalam tabel usermeta, yang dirancang untuk menangani metadata pengguna, dengan menggunakan hook user_register dan fungsi update_user_meta().

Langkah ini memastikan bahwa informasi dapat diakses, diperbarui, dan digunakan dengan mudah di seluruh situs web.

Referensi :

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram