est-il possible d'ajouter le prénom et le nom de famille au formulaire d'inscription par défaut de wordpress?
Ajoutez ce code dans functions.php
add_action( 'register_form', 'myplugin_register_form' );
function myplugin_register_form() {
$first_name = ( ! empty( $_POST['first_name'] ) ) ? trim( $_POST['first_name'] ) : '';
$last_name = ( ! empty( $_POST['last_name'] ) ) ? trim( $_POST['last_name'] ) : '';
?>
<p>
<label for="first_name"><?php _e( 'First Name', 'mydomain' ) ?><br />
<input type="text" name="first_name" id="first_name" class="input" value="<?php echo esc_attr( wp_unslash( $first_name ) ); ?>" size="25" /></label>
</p>
<p>
<label for="last_name"><?php _e( 'Last Name', 'mydomain' ) ?><br />
<input type="text" name="last_name" id="last_name" class="input" value="<?php echo esc_attr( wp_unslash( $last_name ) ); ?>" size="25" /></label>
</p>
<?php
}
//2. Add validation. In this case, we make sure first_name is required.
add_filter( 'registration_errors', 'myplugin_registration_errors', 10, 3 );
function myplugin_registration_errors( $errors, $sanitized_user_login, $user_email ) {
if ( empty( $_POST['first_name'] ) || ! empty( $_POST['first_name'] ) && trim( $_POST['first_name'] ) == '' ) {
$errors->add( 'first_name_error', __( '<strong>ERROR</strong>: You must include a first name.', 'mydomain' ) );
}
if ( empty( $_POST['last_name'] ) || ! empty( $_POST['last_name'] ) && trim( $_POST['first_name'] ) == '' ) {
$errors->add( 'last_name_error', __( '<strong>ERROR</strong>: You must include a first name.', 'mydomain' ) );
}
return $errors;
}
//3. Finally, save our extra registration user meta.
add_action( 'user_register', 'myplugin_user_register' );
function myplugin_user_register( $user_id ) {
if ( ! empty( $_POST['first_name'] ) ) {
update_user_meta( $user_id, 'first_name', trim( $_POST['first_name'] ) );
update_user_meta( $user_id, 'last_name', trim( $_POST['last_name'] ) );
}
}
Pour plus d'informations, voir codex
Vous pouvez aussi utiliser des plugins
$form['account']['lname'] = array('#type' => 'textfield',
'#title' => t('LastName'),
'#default_value' => $edit['LastName'],
'#maxlength' => LASTNAME_MAX_LENGTH,
'#description' => t('Spaces are allowed; punctuation is not allowed except for periods, hyphens, and underscores.'),
'#required' => TRUE,
);
vous pouvez le faire dans l'interface utilisateur uniquement
Naviguez jusqu'au sitedomain/admin/config/people/accounts/fields
et ajoutez le prénom, le nom de famille aux champs où seront affichés Prénom et nom de famille, le formulaire d'inscription par défaut.
Le code fonctionne, mais j'ai repéré un petit bug. Lors de la validation du nom de famille, la dernière variable de la condition if contient "prénom" et doit avoir "nom de famille". Donc, ce morceau de code, correctement, serait:
if ( empty( $_POST['last_name'] ) || ! empty( $_POST['last_name'] ) && trim( $_POST['last_name'] ) == '' ) {
$errors->add( 'last_name_error', __( '<strong>ERROR</strong>: You must include a first name.', 'mydomain' ) );
}