WordPress : Créer un nouveau champ personnalisé utilisateur non enregistré
J’ai ajouté une fonction à mon thème enfant pour ajouter un nouveau champ dans la section Ajouter un nouvel utilisateur afin que vous puissiez sélectionner si le membre est juste un membre ou un candidat, etc. :
function show_extra_profile_fields( $user ) {
$previous_value = '';
if( is_object($user) && isset($user->ID) ) {
$previous_value = get_user_meta( $user->ID, 'membership', true );
}
?>
<hr>
<h2>Membership Status</h2>
<table class="form-table">
<tr>
<th><label for="membership">Membership</label></th>
<td>
<select name="membership" id="membership" style="width:150px;">
<option value="Member" <?php selected( 'Member', get_the_author_meta( 'membership', $user->ID ) ); ?>>Member</option>
<option value="Candidate" <?php selected( 'Candidate', get_the_author_meta( 'membership', $user->ID ) ); ?>>Candidate</option>
</select>
</td>
</tr>
</table>
<hr>
<?php }
add_action( 'show_user_profile', 'show_extra_profile_fields' );
add_action( 'edit_user_profile', 'show_extra_profile_fields' );
add_action( "user_new_form", "show_extra_profile_fields" );
Et ma fonction de sauvegarde :
function save_extra_profile_fields( $user_id ) {
# save choice
if( isset($_POST['membership']) ) {
update_user_meta( $user_id, 'membership', $_POST['membership'] );
}
}
add_action( "user_new_form", "save_extra_profile_fields" );
add_action( 'personal_options_update', 'save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_profile_fields' );
Mon problème est qu’une fois que je clique sur créer, cela n’enregistre pas l’option que j’ai sélectionnée dans la zone de sélection. Il enregistre une fois que j’entre dans l’utilisateur, puis le change à nouveau.
Qu’est-ce que j’ai pu manquer qui me pousse à choisir de ne pas économiser sur la création ?
Solution n°1 trouvée
Essayez d’accrocher votre fonction de sauvegarde à user_register
, car il se peut que la fonction que $user_id
vous avez dans votre fonction n’existe pas encore, il n’y a donc pas d’utilisateur auquel attacher la méta.
0 commentaire