web-dev-qa-db-ja.com

ユーザー登録ウェルカムメールにカスタムトークンを含める方法

デフォルトのユーザー再登録のウェルカムメールでカスタムトークンを使用することはできますか?カスタムモジュールから変数を渡す必要があります。カスタムモジュールでトークンを作成してメールに含めるソリューションはありますか?

1
sgoelz

ユーザーのメールテンプレートは_example.com/admin/config/people/accounts_にあります。たとえば、ウェルカムメールは次のようになります。

[ユーザー:表示名]、

[site:name]のサイト管理者があなたのアカウントを作成しました。これで、このリンクをクリックするか、ブラウザにコピーして貼り付けることでログインできます。

[user:one-time-login-url]

このリンクはログインに1回だけ使用でき、パスワードを設定できるページに移動します。

パスワードを設定すると、将来[site:login-url]にログインできるようになります。

ユーザー名:[ユーザー:名前]パスワード:パスワード

-[site:name]チーム

ご覧のとおり、すでに多くのトークンが使用されています。

さらに、Drupalはコアトークンとモジュールのトークンを区別しません。したがって、テキストフィールドでコアトークン(このトークンのような)を使用できる場合、他のトークンも使用できます。カスタムトークンを使用すると、メールで使用できます。ただし、このメールテンプレートは、選択したトークンのセットにのみアクセスできることに注意してください(参照トークンテキストエリアの下のリンク):

_Current date    current-date    Tokens related to the current date and time.
Current page    current-page    Tokens related to the current page request.
Current user    current-user    Tokens related to the currently logged in user.
Random  random  Tokens related to random data.
Site information    site    Tokens for site-wide settings and other global information.
Users   user    Tokens related to individual user accounts.
_

トークンを操作するとき、各モジュールは、どのトークンを処理するかを定義できます( Token::replace() に渡される_$data_配列)。この特定のケースでは、作成されたユーザーのuserエンティティのみを取得します。それとは別に、いくつかのグローバルトークンが常に利用可能です。これらは_Current date_、_Current page_、_Current user_、RandomおよびSiteです。

したがって、カスタムトークンはuserまたはsiteタイプ内で提供する必要があります。

2
Neograph734