Buat Bidang Kontak Pengguna WordPress Anda Sendiri

Hari ini saya membuat plugin baru untuk Anda. Plugin yang berkaitan dengan metode kontak pengguna. Pada dasarnya ketika Anda mengedit pengguna di administrasi, ada blok “informasi kontak”. Baiklah, saya ingin menunjukkan kepada Anda cara menambahkan bidang Anda di sana, dan untuk sedikit lebih jauh, bagaimana menunjukkan (atau tidak) bidang baru ini di halaman pendaftaran.


Ini adalah pratinjau dari apa yang akan kita buat:

edit-bidang-kustom

Bidang pengguna baru pada halaman edit

bidang khusus

Bidang khusus pada halaman pendaftaran

Dan untuk melakukannya, seperti biasa, kita akan membuat plugin yang bagus dan sederhana!

Langkah 1: Buat Plugin

Buat folder baru di wp-content / plugins dan menyebutnya “metode pengguna-kontak-kustom”. Di dalam folder yang baru dibuat ini, buat file bernama “rc-custom-user-contact-methods.php”, dan buka di perangkat lunak editor favorit Anda.

Tempatkan konten ini di file kosong Anda. Kode ini hanya mendaftarkan plugin:

Langkah 2: Tentukan Bidang Kustom Anda

Selanjutnya, kita perlu membuat variabel yang akan berisi bidang khusus kita, yang akan digunakan di halaman edisi pengguna, dan juga pada halaman default pendaftaran. Mari kita simpan bidang ini ke dalam variabel yang disebut $ extra_fields.

$ extra_fields = array (
array ('facebook', __ ('Nama Pengguna Facebook', 'rc_cucm'), true),
array ('twitter', __ ('Nama Pengguna Twitter', 'rc_cucm'), true),
array ('googleplus', __ ('ID Google+', 'rc_cucm'), true),
array ('linkedin', __ ('ID Tertaut', 'rc_cucm'), false),
array ('pinterest', __ ('Nama Pengguna Pinterest', 'rc_cucm'), false),
array ('wordpress', __ ('Nama Pengguna WordPress.org', 'rc_cucm'), false),
array ('telepon', __ ('Nomor Telepon', 'rc_cucm'), true)
);

Kami menyimpan setiap bidang dalam array yang memiliki 3 parameter, yang pertama adalah ID bidang, yang kedua adalah label bidang, dan yang terakhir adalah informasi boolean yang menentukan apakah bidang ditampilkan pada halaman pendaftaran atau tidak . Anda dapat menambahkan sebanyak mungkin parameter yang Anda inginkan, misalnya pengganti atau informasi yang diperlukan.

Langkah 3: Kaitkan Filter Kanan

Kita sekarang perlu menghubungkan fungsi ke filter yang tepat. Dalam kasus khusus kami, filternya adalah "user_contactmethods", dan nama fungsi yang akan kita buat adalah "rc_add_user_contactmethods".

// Gunakan user_contactmethods untuk menambahkan bidang baru
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

Langkah 4: Buat Bidang Kustom Kami

Kita sekarang perlu membuat fungsi "rc_add_user_contactmethods". Itu yang akan menambahkan bidang khusus kami ke halaman edit pengguna. Berita baiknya, kita menyimpan bidang kita dalam array, artinya fungsi berikut akan sepenuhnya dinamis, dan akan cukup mudah untuk menambahkan bidang baru hanya dengan memodifikasi variabel $ extra_fields.

/ **
* Tambahkan pengguna kustom metode kontak khusus
*
* @ akses publik
* @ sejak 1.0
* @return batal
* /
function rc_add_user_contactmethods ($ user_contactmethods) {

// Dapatkan bidang
global $ extra_fields;

// Tampilkan setiap bidang
foreach ($ extra_fields sebagai $ field) {
if (! isset ($ contactmethods [$ field [0]]))
$ user_contactmethods [$ field [0]] = $ field [1];
}

// Mengembalikan metode kontak
kembalikan $ user_contactmethods;
}

Pada langkah ini, jika Anda menyimpan, dan mengaktifkan plugin, Anda akan melihat bidang khusus Anda di halaman edit pengguna. Karena kami menggunakan pengait yang benar, kami tidak perlu membuat data bidang "simpan". Jadi, plugin ini berfungsi dengan baik untuk saat ini. Tetapi saya ingin melangkah lebih jauh dan menambahkan opsi untuk menampilkan bidang-bidang itu pada halaman pendaftaran. Pastikan Anda memeriksa di bawah pengaturan kotak centang "Siapa pun dapat mendaftar", jika tidak, Anda tidak akan dapat melihat tautan "Daftar".

Langkah 5: Halaman Pendaftaran Kait

Untuk menambahkan bidang kami di halaman pendaftaran, kami perlu mengakses setidaknya dua kait, dan membuat dua fungsi. Satu untuk menampilkan bidang, dan yang kedua untuk menyimpan data bidang ke dalam database.

Mari kita kaitkan fungsi kita:

// Tambahkan bidang kami ke proses pendaftaran
add_action ('register_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

Langkah 6: Tampilkan Halaman Registrasi Bidang Kustom

Dalam kode di atas kami mendeklarasikan dua fungsi. Yang pertama adalah menampilkan bidang pada halaman pendaftaran. Pada bagian ini kita perlu menjaga parameter ketiga dari setiap array di $ extra_fields. Parameter boolean ini memberi tahu apakah bidang harus ditunjukkan atau tidak. Benar: bidang ditampilkan, salah: bidang tidak ditampilkan.

/ **
* Tampilkan bidang khusus pada halaman pendaftaran
*
* Tampilkan bidang khusus pada pendaftaran jika parameter ketiga bidang disetel ke true
*
* @ akses publik
* @ sejak 1.0
* @return batal
* /
function rc_register_form_display_extra_fields () {

// Dapatkan bidang
global $ extra_fields;

// Tampilkan setiap bidang jika parameter ke-3 disetel ke "true"
foreach ($ extra_fields sebagai $ field) {
if ($ field [2] == true) {
$ field_value = isset ($ _POST [$ field [0]])? $ _POST [$ field [0]]: '';
gaung

'; } // berakhir jika } // akhiri foreach }

Langkah 7: Simpan Nilai Fields Setelah Proses Registrasi

Sekarang bidang kita ditampilkan di halaman pendaftaran, kita perlu, untuk menyimpan nilai-nilai mereka ke dalam basis data. Ini adalah waktu fungsi “rc_user_register_save_extra_fields”. Untuk melakukannya, kita perlu menggunakan "wp_update_user ()"Fungsi.

/ **
* Simpan nilai bidang
*
* @ akses publik
* @ sejak 1.0
* @return batal
* /
function rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = array ()) {

// Dapatkan bidang
global $ extra_fields;

$ userdata = array ();
$ userdata ['ID'] = $ user_id;

// Simpan setiap bidang
foreach ($ extra_fields sebagai $ field) {
if ($ field [2] == true) {
$ userdata [$ field [0]] = $ _POST [$ field [0]];
} // berakhir jika
} // akhiri foreach

$ new_user_id = wp_update_user ($ userdata);
}

Kesimpulan

Ya, kami melihat dasar-dasar cara menambahkan bidang baru ke metode kontak pengguna, tapi hanya itu. Misalnya Anda dapat menghapus bidang yang ada seperti "Yahoo IM", "AIM" dan "Jabber" dengan melakukan unset sederhana (). Tetapi Anda juga dapat menambahkan beberapa fungsi untuk membersihkan bidang khusus Anda untuk memeriksa misalnya jika nomor telepon memiliki format yang sesuai, jika bidang diperlukan atau tidak dll. Dll ... Jangan ragu untuk meminta fitur spesifik di komentar!

Oh, dan hal terakhir ... jika Anda ingin menampilkan data dari bidang Anda, cukup gunakan ini:

// Param 1 adalah ID pengguna
// Param 2 adalah ID bidang
// Param 3 ada untuk mendapatkan var atau array
echo get_user_meta (1, 'twitter', true);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

    Like this post? Please share to your friends:
    Adblock
    detector
    map