web-dev-qa-db-ja.com

BuddyPressの登録メールまたはアクティベーションページにユーザーのユーザー名を表示する

a)登録したら、そのユーザーのユーザー名をアクティベーションメールに含めるようにします。

例えばアクティベーションメールは次のようになります。登録いただきありがとうございます。アカウントの有効化を完了するには、次のリンクをクリックして、USERNAMEと選択したパスワードを使用してログインしてください。アクティベーションリンクのURL

あるいはそれが不可能な場合。

b)メールでアクティベーションリンクをクリックした後にページに表示する方が簡単な場合は、そこにそのユーザーのユーザー名を表示します。

例えば有効化ページ:アカウントは正常に有効化されました。これで、サインアップしたときに指定したユーザー名USERNAMEとパスワードを使用してログインできます。

2
Tanya

このコードをbp-custom.phpまたはテーマのfunctions.phpファイルに追加することで、アクティベーションEメールにユーザー名を追加できます。

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;
}

編集:ユーザーが自分のユーザー名にスペースを使用した場合、Buddypressは彼にエラーを表示せずに登録プロセスを続行します。次回ユーザーが自分のユーザー名をスペースで使用してログインしようとすると、ログインプロセスは失敗します。そのため、$username = $_POST['signup_username']を次のように置き換える必要があります。

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