it-swarm.com.de

Wie füge ich dem Benutzerprofil ein Feld hinzu? Zum Beispiel Land, Alter usw

Ich bin nicht sehr gut mit Computern/Codes usw. Ich verwende ein Plugin, das ein Registrierungsformular zu etwas macht, und in dieser Form habe ich Land, Altersgruppe, Geschlecht und so weiter hinzugefügt. Ich klicke auf die Option, die den Registrierer zum WordPress-User-Ding hinzufügt. Aber wenn ich es versuche, werden nur der Benutzername und die E-Mail-Adresse im Abschnitt "Benutzer" des Backends angezeigt. Gibt es eine Möglichkeit, die anderen Felder im Abschnitt "Benutzer" anzuzeigen?

Ich brauche sie für statistische Zwecke zu zeigen.

15
Chloe Aus

Sie müssen die Hooks show_user_profile, edit_user_profile, personal_options_update und edit_user_profile_update verwenden.

Sie können den folgenden Code verwenden, um zusätzliche Felder im Abschnitt Benutzer hinzuzufügen

Code zum Hinzufügen zusätzlicher Felder im Abschnitt Benutzer bearbeiten:

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 zum Speichern zusätzlicher Felddetails in der Datenbank :

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'] );
}

Es gibt auch mehrere Blog-Beiträge zu diesem Thema, die hilfreich sein könnten:

44
Arpita Hunka

Mit dem Advanced Custom Fields Plugin können Sie Benutzerprofilen Felder ohne Kodierung hinzufügen.

2
squarecandy

Sie solltenget_user_metaanstelle vonget_the_author_metaverwenden:

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