Hvem fanden er den general?
Hvem fanden er den general?

Tilføj felter på WordPress bruger

Af mange forskellige grunde kan det være smart at kunne tiløje nogle felter på en bruger i WordPress.

I dette eksempel vil jeg vise hvordan du tilføjer nogle felter med virksomheds information. Havde brug for at kunne holde styr på informationer på nogle brugere som er betalende abonenter på en WordPress side.

Koden er delt op i 2 funktioner. Den ene viser felterne og loader indhold til redigering. Den anden gemmer ændriner.

function zebs_add_user_fields( $user ) {
    $extra = get_user_meta($user->ID);
    ?>
    <table class="form-table">
        <tr>
            <th><label for="extra">Firma</label></th>
            <td><input type="text" value="<?php echo $extra['Firma'][0]; ?>" name="Firma" size="50"></td>
        </tr>
        <tr>
            <th><label for="extra">Kontonummer</label></th>
            <td><input type="text" value="<?php echo $extra['Kontonummer'][0]; ?>" name="Kontonummer" size="50"></td>
        </tr>
    </table>
    <?php
}

Det her vil vise 2 fleter på brugern. Firma og Kontonummer.
Med ‘get_user_meta’ funktionen loader vi det der er gemt på brugere.

function zebs_save_user_fields( $user_id ) {
    if ( !current_user_can( 'edit_user', $user_id ) )
        return FALSE;
    update_user_meta($user_id, 'Firma', $_POST['Firma'] );
    update_user_meta($user_id, 'Kontonummer', $_POST['Kontonummer'] );
}

Denne funktion vil sørge for at gemme ændringer til de 2 felter.

For at WordPress ved at den skal bruge de 2 funktioner, skal vi lige have dem hooket op.

add_action( 'show_user_profile', 'zebs_add_user_fields' );
add_action( 'edit_user_profile', 'zebs_add_user_fields' );
add_action( 'personal_options_update', 'zebs_save_user_fields' );
add_action( 'edit_user_profile_update', 'zebs_save_user_fields' );

 Hvis alt er gået som det skal vil du nu kunne se de 2 nye input felter på alle brugere.