Come si aggiunge un campo al profilo utenti?Ad esempio, paese, età ecc.
-
-
Prova lanostra ricerca.Troverai dozzine diesempi.Please try our search. You will find dozens of examples.
- 5
- 2016-01-16
- fuxia
-
3 risposta
- voti
-
- 2016-01-16
Devi utilizzaregli hook
show_user_profile
,edit_user_profile
,personal_options_update
eedit_user_profile_update
.Puoi utilizzareil codice seguenteper aggiungere ulteriori campinella sezione Utente
Codiceper l'aggiunta di campi aggiuntivinella sezione Modifica utente:
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 }
Codiceperil salvataggio dei dettagli dei campi aggiuntivinel 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'] ); }
Sono disponibili anche diversipost diblog sull'argomento chepotrebberoessere utili:
You need to use the
show_user_profile
,edit_user_profile
,personal_options_update
, andedit_user_profile_update
hooks.You can use the following code for adding additional fields in User section
Code for adding extra fields in Edit User Section:
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 }
Code for saving extra fields details in 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'] ); }
There are also several blog posts available on the subject that might be helpful:
-
Bravo questofunziona allagrande.Bravo this works great.
- 0
- 2018-03-15
- AVEbrahimi
-
Questonon stamemorizzandoi dati daimiei campiextranel DB.Suggerimentiperfavore?Grazie.This isn't storing data from my extra fields in the DB. Suggestions please? Thx.
- 1
- 2019-07-03
- b_dubb
-
@b_dubb,puoi condividereiltuo codice?Quindi controlleròe tifarò sapere.@b_dubb, Can you please share your code? So i'll check and let you know.
- 0
- 2019-08-02
- Arpita Hunka
-
Ho risoltoilproblema,magrazieper averci contattato.I have resolved my issue but thanks for reaching out.
- 0
- 2019-08-05
- b_dubb
-
Ènecessario aggiungere la verificanonce a questoperevitare diintrodurre vulnerabilità di sicurezza.https://developer.wordpress.org/themes/theme-security/using-nonces/You should add nonce verification to this to avoid introducing security vulnerabilities. https://developer.wordpress.org/themes/theme-security/using-nonces/
- 1
- 2020-01-30
- squarecandy
-
- 2017-09-20
Ilplug-in Advanced Custom Fields Pro ti consentirà di aggiungere campi aiprofili utente senza alcuna codifica.
The Advanced Custom Fields Pro plugin will allow you to add fields to user profiles without any coding.
-
Solo la versioneproOnly the pro version
- 3
- 2019-03-04
- I am the Most Stupid Person
-
Ci sonomodigratuitiperfarlo con PHP.There are free ways of doing this with PHP.
- 2
- 2019-10-15
- Drmzindec
-
Sì,sicuramentepossibile codificarloin PHP senza ACF sepreferisci.Lamiaesperienza è che ci voglionopiù di 100 righe di codicee devipreoccuparti della verificanonce,della scrittura dell'HTML delmodulo,ecc. Potrebberoesserenecessarie alcune ore di codifica contro 5-10minuti di configurazionein ACF.Probabilmente dipende se staigià utilizzando ACF Pro su unprogetto.Yep - definitely possible to code this in PHP without ACF if you prefer. My experience is that it takes 100+ lines of code and you need to worry about nonce verification, writing the HTML of the form, etc. Could take a few hours of coding vs. 5-10 min of setup in ACF. Probably depends on if you're using ACF Pro already on a project.
- 0
- 2019-10-15
- squarecandy
-
Wordpress dovrebbefarlo senza chiederti di codificarei moduli htmlin php.Secondo ACF,dovrebbeessereparte delnucleo.Puoi anche definirei campi conil codicee la sua versione.Wordpress should do this without asking you to hardcode html forms in php. I second ACF, it should be part of the core. You can also define fields with code and version it.
- 2
- 2020-01-30
- marek.m
-
- 2018-12-04
Farestimeglio a utilizzare
get_user_meta
(invece diget_the_author_meta
):function extra_user_profile_fields( $user ) { $meta = get_user_meta($user->ID, 'meta_key_name', false); }
You'd better use
get_user_meta
(instead ofget_the_author_meta
):function extra_user_profile_fields( $user ) { $meta = get_user_meta($user->ID, 'meta_key_name', false); }
-
entrambifunzionano senzaproblemi!both works with no problems!
- 0
- 2020-08-18
- Fernando Baltazar
Non sonomoltobravo con computer/codiciecc. Uso unplug-in che rende unmodulo di registrazione unpo 'stranoe in quellaforma ho aggiuntopaese,gruppo dietà,sessoe così via.Faccio clic sull'opzione che aggiungeràil registratore alla cosa utente di wordpress.Ma quando loprovo,soloilnome utentee l'email vengono visualizzatinella sezione Utenti sulback-end. C'è unmodopermostraregli altri campinella sezione utenti?
Hobisogno che vengano visualizzatiper usi statistici.