回答:
ルールを使用してこれを行うのが最も簡単です。次の手順に従って、仕事をする必要があります。
return $account_unchanged->pass != $account->pass;私はこれまでにルールで試したことはありませんが、$accountと$account->originalオブジェクトの値を比較するだけの問題でしょう。
カスタムコードでそれを行う1つの方法は、実装することhook_user_presave()です。
function MYMODULE_user_presave(&$edit, $account, $category) {
// Don't show message for registering users.
if (isset($account->is_new) && $account->is_new) {
return;
}
if (!empty($edit['pass']) && $account->pass != $edit['pass']) {
// Password has been changed.
}
}
おそらく同じことをで行うことができますがhook_user_update()、私はこれまでに試したことはありません。上記はライブプロジェクトから取得され、完全に機能します。
既に使用しているので、ルールを使用する方が簡単かもしれませんが、PHPフィルターモジュールを有効にする必要があります。
次の手順:
admin/modulesadmin/config/workflow/rulesAfter updating an existing user accountReact on event]ドロップダウンリストから必ず選択してください。Execute custom PHP code値セクションに次のPHPカスタムコードを追加します
if(!empty($account->current_pass)) {
return true;
}
次に、アクションを追加して選択します Send mail
[account:mail]件名フィールドとメッセージフィールドを追加して入力します。