いつもお世話になっております。
現在ConcreteCMS9.2.3を利用しております。
新規ユーザー登録の入力画面に追加した属性が、管理者宛のメールに掲載されていません。
下記の手順で作成しましたが、何か問題があるのでしょうか?ConcreteCMSのバグなのでしょうか?
1.新規ユーザー登録の入力画面に、属性を追加して氏名、会社名、住所、電話番号などを入力できるようにしました。
2.新規ユーザー登録の際に管理者宛にメール通知したいので、下記のように設定しました。
ログインとユーザー登録 > アカウントオプションにて
「新規ユーザー登録があった際に管理者にメールで通知します。」にチェックを入れる
3.管理者宛にメールが届くようになったのですが、追加した属性(氏名、会社名、住所、電話番号など)の入力内容が記載されておらず、下記のようなメールが届きます。
ユーザー名: okuden
メールアドレス: okuden@abc.com
会社名:
部署:
郵便番号:
都道府県:
市区町村番地:
電話番号:
FAX番号:
氏名:
ふりがな:
This has been reported as a bug on Github. Feel free to add your concerns to that bug report.
okuden
3
Thanks Michael,I hope this bug will be resolved.
デフォルトのメール文章をテンプレートを上書きしないと、メール文には記載されないのではないでしょうか?
/concrete/mail/user_register.php
を
/application/mail/user_register.php
に複製し、文章に追加されれば送信されると思います。
そもそも、メールテンプレートにも、データが飛んでないみたいです。
$userInfo->getAttribute() で 取得できていないようで、
保存前に参照してしまっているようでした。
ユーザーオブジェクトから取得できなかったので、 form の POST値 から取得することで、回避しました。
foreach ($attribs as $ak) {
$attribValues[] = $ak->getAttributeKeyDisplayName('text') . ': ' . $process-getAttribute($ak->getAttributeKeyHandle(), 'display');
}
↓
$attrValue = $this->request('akID');
foreach ($attribs as $ak) {
$value = $attrValue[$ak->getAttributeKeyID()]['value'] ?? '';
$attribValues[] = $ak->getAttributeKeyDisplayName('text') . ': ' . $value;
}