Ondersteuning » Algemeen WordPress » 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?

15 reacties aan het bekijken - 46 tot 60 (van in totaal 70)
  • Thread starter robromeijn

    (@robromeijn)

    Hi Guido,

    Het is weer een tijdje terug dat we hiermee bezig waren…. Misschien herinner je je nog dat je destijds een snippet heb opgesteld om de velden in het gebruikersprofiel werkend te krijgen. Per veld was dat de notatie:
    <tr>
    <th><label>Geboortedatum</label></th>
    <td>,input type=”text” value=<?php echo get_user_meta( $user->ID, ‘geboortedatum’, true ); ?>”class=”regelar-text”/></td>

    Dit werkt prima want bij alle nieuwe gebruikers worden de extra velden nu vanuit Forminator-form ingevuld. Waar ik nu echter naar op zoek ben, is de mogelijkheid om deze velden bij reeds bestaande gebruikers handmatig in te vullen. Ik kan de velden wel invullen, maar na ‘wijzigingen opslaan’ verdwijnt de ingevoerde tekst alsnog. Is dat op te lossen?

    Groeten, Rob

    Thread starter robromeijn

    (@robromeijn)

    Hi Guido (of collega),
    Bovenstaande vraag stuurde ik een week geleden, maar had er geen erg in dat dit als ‘opgelost’ stond gemarkeerd. Mocht je me kunnen helpen met deze vraag, dan graag.

    Alvast dank, Rob

    Guido

    (@guido07111975)

    Hoi Rob / @robromeijn ,

    Ben niet actief meer op dit forum, vandaar mijn late reactie.

    Als het goed is staat de HTML readonly=readonly in je input velden. Zie de code in mijn eerdere reactie (link). Dat zorgt ervoor dat velden niet ingevuld kunnen worden. Dit verwijderen zal het moeten oplossen.

    Guido

    Guido

    (@guido07111975)

    Hoi opnieuw,

    Nee, het werkt toch niet omdat de velden niet opgeslagen worden. Ik heb de code aangevuld. Ook het reeds bekende deel bovenaan is iets gewijzigd. Het onderstaande werkt bij mij.

    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>Telefoon</label></th>
    		<td><input type="text" name="telefoon" value="<?php echo get_user_meta( $user->ID, 'telefoon', true ); ?>" class="regular-text" /></td>
            </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['telefoon']) ) {
    		update_user_meta( $user_id, 'telefoon', $_POST['telefoon'] );
    	}
    }
    
    

    Let op: de waarden Info en Telefoon stonden eerst met hoofdletter, dat is nu kleine letter geworden. Moet je waarschijnlijk in je formulier aanpassen.

    Guido

    Thread starter robromeijn

    (@robromeijn)

    Hi Guido,

    Dank voor je reactie. Jammer dat je op dit forum niet meer actief bent, dus des te fijner dat je toch even de tijd nam.
    Ik heb de snippet aangepast, maar het werkt bij mij slechts deels.
    De extra velden die nu bij alle gebruikers staan, worden bij nieuwe aanmeldingen van gebruikers meteen uit het aanmeldformulier overgenomen. Echter, ik heb daarnaast ook enkele tientallen gebruikers die zijn aangemeld vóórdat het aanmeldformulier actief was. Bij deze gebruikersprofielen zijn de extra dus leeg, omdat er geen info vanuit het aanmeldformulier beschikbaar is. En juist bij die gebruikers wil ik bijv zo’n telefoonnummer handmatig kunnen invullen.
    Met de aanvulling die je me nu hebt gegeven, kan ik het bestaande veld Telefoon van zo’n ‘oude’ gebruiker wel invullen, maar nog niet opslaan.
    Je code voorziet er wel in dat ik een tweede veld ‘Telefoon’ kan aanmaken, waarin ik wel handmatig kan invoeren en opslaan, dus deels werkt het wel.
    Maar is er ook een mogelijkheid dat er 1 telefoon-veld is , die ik zowel door gegevens uit het aanmeldformulier (bij nieuwe aanmeldingen) kan laten invullen, alsook handmatig kan invullen? Dus dat e.e.a. gecombineerd wordt.

    Hoor het graag, alvast dank

    Guido

    (@guido07111975)

    Hoi Rob,

    Ervan uitgaande dat in het formulier de waarde telefoon met hoofdletter is, moet je dat ook overnemen in mijn code. Dus overal waarde “telefoon” wijzigen in “Telefoon”.

    Guido

    Thread starter robromeijn

    (@robromeijn)

    Hi Guido,
    Gedaan, maar maakt geen verschil helaas.
    Nog iets anders dat ik kan doen?

    Groetjes, Rob

    Guido

    (@guido07111975)

    Wat is de code die je tot vandaag hebt gebruikt?

    Guido

    Thread starter robromeijn

    (@robromeijn)

    dat was:

    <tr>
    <th><label>Telefoon</label></th>
    <td>,input type=”text” value=<?php echo get_user_meta( $user->ID, ‘telefoonnummer’, true ); ?>”class=”regelar-text”/>,/td>

    groetjes, Rob

    Guido

    (@guido07111975)

    Mijn code gebruiken en “telefoon” in “telefoonnummer” wijzigen.

    Guido

    Thread starter robromeijn

    (@robromeijn)

    Hi Guido,
    Dat doet het inderdaad. Heel erg bedankt.
    Begrijp ik goed dat ‘name’ altijd gelijk moet zijn aan de ‘ user meta data’ en dat de code onderaan alleen de omschrijving van de user meta data ‘ moet bevatten. Ik heb namelijk nog wat andere velden die ik op dezelfde manier wil kunnen invullen, 😉
    Groetjes, rob

    Guido

    (@guido07111975)

    Mooi dat het werkt, graag gedaan.
    Jouw veronderstelling is juist, de name van de input moet overeenkomen met de betreffende meta waarde.

    Guido

    Guido

    (@guido07111975)

    Zou je de status van dit topic op opgelost kunnen zetten?

    Guido

    Thread starter robromeijn

    (@robromeijn)

    Toch nog een probleempje. Zoals ik al noemde, heb ik nog een aantal andere velden die ik op dezelfde manier wil invullen. Ik heb jouw code betreffende ’telefoonnummer’ daarom meerdere keren gekopieerd en dit aangepast met ‘woonplaats’, ‘geboortedatum’, ‘adres’, ‘postcode’. Het vreemde is nu dat ‘geboortedatum’ wel ge-update wordt na opslaan, maar de andere velden dan weer niet.

    Guido

    (@guido07111975)

    Zou gewoon moeten werken. Je kunt je code hier toevoegen zodat we er naar kunnen kijken.

    Selecteer vóór het plakken van je code wel even het <code> blok.

    Guido

15 reacties aan het bekijken - 46 tot 60 (van in totaal 70)
  • Het onderwerp ‘Gebruikersprofiel aanvullen’ is gesloten voor nieuwe reacties.