Je souhaite ajouter un champ de confirmation email lors du processus d’inscription d’un utilisateur.
Il existe de nombreux plugins pour customiser les champs a l’inscription en front-end WordPress. Mais pour un ou deux champs avec une logique de validation simple, je préfère utiliser un peu de code à mettre dans un plugin ou dans le functions.php. Plutôt que de prendre un plugin qui risque d’alourdir pour pas grand chose mon WordPress.
A ce sujet la doc WordPress est très bien faite: https://codex.wordpress.org/Customizing_the_Registration_Form
Mais… Avec BuddyPress cela ce passe différemment. En effet BuddyPress surcharge complètement le mécanisme d’inscription natif de WordPress. Voici comment faire:
Tout d’abord, créer un child theme, puis surcharger le fichier:
buddypress/members/register.php
Les champs de base de WordPress sont gérés autour des lignes 70 de ce Template.
email errors. * * @since BuddyPress (1.1.0) */ do_action( 'bp_signup_email_errors' ); ?> /> /** * Fires and displays any member registration email confirmations errors. * */
Ensuite il reste ces quelques fonctions pour gérer les erreurs et l’affichage du mail de confirmation:
add_action( 'bp_signup_validate', function() { $bp = buddypress(); if ( strcmp( $_POST['signup_email_confirm'], $_POST['signup_email'] ) !== 0 ) { $bp->signup->errors['signup_email_confirm'] = __( 'Les deux email ne correspondent pas.', 'lang-bp-confirm-email' ); } }); function bp_signup_email_confirm_value() { echo bp_get_signup_email_confirm_value(); } function bp_get_signup_email_confirm_value() { $value = ''; if ( isset( $_POST['signup_email_confirm'] ) ) { $value = $_POST['signup_email_confirm']; } return $value; }