Gebruikersprofiel aanvullen
-
Is er een mogelijkheid om de gegevens van een gebruikersprofiel uit te breiden? Ik zou bij bestaande gebruikers ook graag adresgegevens, geboortedatum enz willen toevoegen. Bestaat daar een plugin of html-codes voor?
-
add_action( 'personal_options_update', 'save_custom_user_data' ); add_action( 'edit_user_profile_update', 'save_custom_user_data' ); function save_custom_user_data( $user_id ) { if ( ! current_user_can('edit_user', $user_id) ) { return; } if (isset($_POST['info']) ) { update_user_meta( $user_id, 'info', $_POST['info'] ); } if (isset($_POST['telefoonnummer']) ) { update_user_meta( $user_id, 'telefoonnummer', $_POST['telefoonnummer'] ); } if (isset($_POST['woonplaats']) ) { update_user_meta( $user_id, 'woonplaats', $_POST['woonplaats'] ); } if (isset($_POST['geboortedatum']) ) { update_user_meta( $user_id, 'geboortedatum', $_POST['geboortedatum'] ); } if (isset($_POST['adres']) ) { update_user_meta( $user_id, 'adres', $_POST['adres'] ); } if (isset($_POST['postcode']) ) { update_user_meta( $user_id, 'postcode', $_POST['postcode'] ); } if (isset($_POST['ondernemer']) ) { update_user_meta( $user_id, 'ondernemer', $_POST['ondernemer'] ); } }
Bovenstaande is dus een samenvoeging van hetgeen je eerder aan mij stuurde
Alvast bedankt voor je reactie!
Groetjes, RobDit lijkt prima, dan zal er iets in de HTML van je formulier fout zitten.
Kun je die ook even delen? In mijn voorbeeld is dat de code vanfunction display_custom_user_data( $user )
Guido
Hi Guido, bedankt voor je reactie. Je vraag om de HTML te delen kan ik zo 1,2,3, niet beantwoorden. Ik heb de pagina geinspecteerd, maar kan de code niet vinden. Maar wellicht zoek ik de gevraagde code op een verkeerde plek? Mijn kennis over codes en html is zeer gering namelijk.
Het gaat om de HTML die je als het goed is zelf gedupliceerd hebt mbv mijn voorbeeld in mijn eerder topic, zie deze link. Voorbeeld:
<th><label>Telefoon</label></th> <td><input type="text" name="telefoon" value="<?php echo get_user_meta( $user->ID, 'telefoon', true ); ?>" class="regular-text" /></td>
Guido
Hi Guido, datgene dat ik gedupliceerd heb, had ik in het codeblok gezet, toch?
Of bedoel je de code waarnaar het verwijst? Hieronder de hele code:add_action( 'show_user_profile', 'display_custom_user_data' ); add_action( 'edit_user_profile', 'display_custom_user_data' ); function display_custom_user_data( $user ) { ?> <h3>Extra velden</h3> <table class="form-table"> <tr> <th><label>Extra info</label></th> <td><input type="text" name="info" value="<?php echo get_user_meta( $user->ID, 'info', true ); ?>" class="regular-text" /></td> </tr> <tr> <th><label>Geboortedatum</label></th> <td><input type="text" name="geboortedatum"value="<?php echo get_user_meta( $user->ID, 'geboortedatum', true ); ?>" class="regular-text" /></td> </tr> <tr> <th><label>Adres</label></th> <td><input type="text" value="<?php echo get_user_meta( $user->ID, 'adres', true ); ?>" class="regular-text" /></td> </tr> <tr> <th><label>Postcode</label></th> <td><input type="text" value="<?php echo get_user_meta( $user->ID, 'postcode', true ); ?>" class="regular-text" /></td> </tr> <tr> <th><label>Woonplaats</label></th> <td><input type="text" value="<?php echo get_user_meta( $user->ID, 'woonplaats', true ); ?>" class="regular-text" /></td> </tr> <tr> <th><label>Telefoon</label></th> <td><input type="text" name="telefoonnummer" value="<?php echo get_user_meta( $user->ID, 'telefoonnummer', true ); ?>" class="regular-text" /></td> <tr> <th><label>ondernemer</label></th> <td><input type="text" value="<?php echo get_user_meta( $user->ID, 'ondernemer', true ); ?>" class="regular-text" /></td> </tr> </tr> </table> <?php } add_action( 'personal_options_update', 'save_custom_user_data' ); add_action( 'edit_user_profile_update', 'save_custom_user_data' ); function save_custom_user_data( $user_id ) { if ( ! current_user_can('edit_user', $user_id) ) { return; } if (isset($_POST['info']) ) { update_user_meta( $user_id, 'info', $_POST['info'] ); } if (isset($_POST['telefoonnummer']) ) { update_user_meta( $user_id, 'telefoonnummer', $_POST['telefoonnummer'] ); } if (isset($_POST['woonplaats']) ) { update_user_meta( $user_id, 'woonplaats', $_POST['woonplaats'] ); } if (isset($_POST['geboortedatum']) ) { update_user_meta( $user_id, 'geboortedatum', $_POST['geboortedatum'] ); } if (isset($_POST['adres']) ) { update_user_meta( $user_id, 'adres', $_POST['adres'] ); } if (isset($_POST['postcode']) ) { update_user_meta( $user_id, 'postcode', $_POST['postcode'] ); } if (isset($_POST['ondernemer']) ) { update_user_meta( $user_id, 'ondernemer', $_POST['ondernemer'] ); } }
- Deze reactie is gewijzigd 1 jaar, 8 maanden geleden door robromeijn.
Hoi,
Je bent vergeten het
name
attribuut bij die velden toe te voegen.Guido
ach ja, dat ik daar overheen keek…… super bedankt!!! Ik ga het aanpassen en dan zal het vast wel werken.
groetjes, RobHi Guido,
Dit werkt! Super! Nu heb ik nog 1 vraag….. als ik de gebruikersprofielen incl de extra velden wil exporteren, dan krijg ik alle velden in een excell behalve de info die in deze extra velden staan. Ik kan de extra velden niet aanvinken bij de export-opties. Ze staan er niet tussen. En dat zou nu juist zo handig zijn. Hoe krijg ik dat voor elkaar?
- Deze reactie is gewijzigd 1 jaar, 7 maanden geleden door robromeijn.
Hoi,
Daarvoor kun je een plugin zoals Import and export users and customers gebruiken. Na installeren ga naar Gereedschap > Import and export users and customers > (tab) Export en voer bij Columns de kolommen in die je wenst te exporteren. Voorbeeld:
user_login,user_email,first_name,last_name,info,telefoon
Dit exporteert de kolommen gebruikersnaam, e-mailadres, voornaam, achternaam, (custom veld) info, (custom veld) telefoon.
Guido
Hallo Guido,
dank voor je reactie. Ik heb de plugin Webtoffee import/export. Is die van jou in basis anders? Want bij mijn plugin worden zo’n 30 kolommen weergegeven (incl woocommerce costumers-data) maar de zelf toegevoegde ‘extra velden’ zoals geboortedatum en telefoon enz. komen in die lijst kolommen niet voor. Ik zal eens kijken of die van jou iets anders weergeeft. Wordt vervolgd.
dank en groetjes,Rob
- Het onderwerp ‘Gebruikersprofiel aanvullen’ is gesloten voor nieuwe reacties.