Bagaimana cara menambahkan bidang pada profil Pengguna? Misalnya, negara, umur, dll


21

Saya tidak terlalu mahir dengan komputer / kode dll. Saya menggunakan plugin yang membuat formulir pendaftaran menjadi sesuatu dan dalam bentuk itu saya menambahkan negara, kelompok umur, jenis kelamin, dan sebagainya. Saya klik opsi yang akan menambahkan registerer ke dalam pengguna wordpress thingy. Tetapi ketika saya mencobanya, hanya nama pengguna dan email yang ditampilkan di bagian Pengguna di backend .. Apakah ada cara untuk bidang lain ditampilkan di bagian pengguna?

Saya perlu mereka tampil untuk penggunaan statistik.


5
Silakan coba pencarian kami. Anda akan menemukan banyak contoh.
fuxia

Jawaban:


58

Anda perlu menggunakan show_user_profile, edit_user_profile,personal_options_update , dan edit_user_profile_updatekait.

Anda dapat menggunakan kode berikut untuk menambahkan bidang tambahan di bagian Pengguna

Kode untuk menambahkan bidang tambahan di Edit Bagian Pengguna:

add_action( 'show_user_profile', 'extra_user_profile_fields' );
add_action( 'edit_user_profile', 'extra_user_profile_fields' );

function extra_user_profile_fields( $user ) { ?>
    <h3><?php _e("Extra profile information", "blank"); ?></h3>

    <table class="form-table">
    <tr>
        <th><label for="address"><?php _e("Address"); ?></label></th>
        <td>
            <input type="text" name="address" id="address" value="<?php echo esc_attr( get_the_author_meta( 'address', $user->ID ) ); ?>" class="regular-text" /><br />
            <span class="description"><?php _e("Please enter your address."); ?></span>
        </td>
    </tr>
    <tr>
        <th><label for="city"><?php _e("City"); ?></label></th>
        <td>
            <input type="text" name="city" id="city" value="<?php echo esc_attr( get_the_author_meta( 'city', $user->ID ) ); ?>" class="regular-text" /><br />
            <span class="description"><?php _e("Please enter your city."); ?></span>
        </td>
    </tr>
    <tr>
    <th><label for="postalcode"><?php _e("Postal Code"); ?></label></th>
        <td>
            <input type="text" name="postalcode" id="postalcode" value="<?php echo esc_attr( get_the_author_meta( 'postalcode', $user->ID ) ); ?>" class="regular-text" /><br />
            <span class="description"><?php _e("Please enter your postal code."); ?></span>
        </td>
    </tr>
    </table>
<?php }

Kode untuk menyimpan detail bidang ekstra dalam database :

add_action( 'personal_options_update', 'save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_user_profile_fields' );

function save_extra_user_profile_fields( $user_id ) {
    if ( !current_user_can( 'edit_user', $user_id ) ) { 
        return false; 
    }
    update_user_meta( $user_id, 'address', $_POST['address'] );
    update_user_meta( $user_id, 'city', $_POST['city'] );
    update_user_meta( $user_id, 'postalcode', $_POST['postalcode'] );
}

Ada juga beberapa posting blog yang tersedia tentang topik yang mungkin bisa membantu:


Bravo ini bekerja dengan baik.
AVEbrahimi

1
Ini tidak menyimpan data dari bidang ekstra saya di DB. Saran tolong? Terima kasih.
b_dubb

@ b_dubb, bisakah Anda membagikan kode Anda? Jadi saya akan memeriksa dan memberi tahu Anda.
Arpita Hunka

Saya telah menyelesaikan masalah saya tetapi terima kasih telah menjangkau.
b_dubb

3

Anda sebaiknya menggunakan get_user_meta(bukannya get_the_author_meta):

function extra_user_profile_fields( $user ) {
    $meta = get_user_meta($user->ID, 'meta_key_name', false);
}

3

The Lanjutan Custom Fields Pro Plugin akan memungkinkan Anda untuk menambahkan kolom untuk profil pengguna tanpa coding.


3
Hanya versi pro
Saya Orang yang Paling Bodoh

Ada cara gratis untuk melakukan ini dengan PHP.
Johan Pretorius

Yap - pasti memungkinkan untuk kode ini dalam PHP tanpa ACF jika Anda mau. Pengalaman saya adalah bahwa dibutuhkan 100+ baris kode dan Anda perlu khawatir tentang verifikasi nonce, menulis HTML formulir, dll. Dapat membutuhkan beberapa jam pengkodean vs 5-10 menit pengaturan di ACF. Mungkin tergantung pada apakah Anda menggunakan ACF Pro sudah pada proyek.
squarecandy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.