web-dev-qa-db-fra.com

Afficher le nom d'utilisateur de l'utilisateur dans l'email d'enregistrement ou la page d'activation avec BuddyPress

a) Je voudrais que le nom d'utilisateur de la personne soit inclus dans son email d'activation après son inscription.

par exemple. Le courriel d'activation ressemblerait à ceci: Merci de vous être inscrit! Pour terminer l'activation de votre compte, cliquez sur le lien suivant et connectez-vous à l'aide deNOM D'UTILISATEURet le mot de passe que vous avez choisi: lien d'activation url

Ou si ce n'est pas possible.

b) S'il est plus facile de l'afficher sur la page une fois que le lien d'activation a été cliqué dans l'e-mail, j'aimerais afficher le nom d'utilisateur de la personne.

par exemple. Page d'activation: Votre compte a été activé avec succès! Vous pouvez maintenant vous connecter avec le nom d'utilisateurNOM D'UTILISATEURet le mot de passe que vous avez fournis lors de votre inscription.

2
Tanya

Vous pouvez ajouter le nom d'utilisateur à l'e-mail d'activation en ajoutant ce code au bp-custom.php ou au fichier functions.php du thème.

add_filter('bp_core_signup_send_validation_email_message', 'add_username_to_activation_email',10,3);

function add_username_to_activation_email($msg, $u_id, $activation_url) {
    $username = $_POST['signup_username'];
    $msg .= sprintf( __("After successful activation, you can log in using your username (%1\$s) along with password you choose during registration process.", 'textdomain'), $username);
    return $msg;
}

EDIT: Vous avez raison, si l'utilisateur utilise un espace dans son nom d'utilisateur, Buddypress ne lui indiquera pas d'erreur et le processus d'enregistrement se poursuivra. La prochaine fois que l'utilisateur tentera de se connecter en utilisant son nom d'utilisateur avec un espace, le processus de connexion échouera. Nous devons donc remplacer $username = $_POST['signup_username'] comme suit:

add_filter('bp_core_signup_send_validation_email_message', 'add_username_to_activation_email',10,3);

function add_username_to_activation_email($msg, $u_id, $activation_url) {
    // $username = $_POST['signup_username'];
    $userinfo = get_userdata($u_id);
    $username = $userinfo->user_login;
    $msg .= sprintf( __("After successful activation, you can log in using your username (%1\$s) along with password you choose during registration process.", 'textdomain'), $username);
    return $msg;
}
1
Ahmad M