回答:
ルールを使用してこれを行うのが最も簡単です。次の手順に従って、仕事をする必要があります。
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/modules
admin/config/workflow/rules
After updating an existing user account
React on event]ドロップダウンリストから必ず選択してください。Execute custom PHP code
値セクションに次のPHPカスタムコードを追加します
if(!empty($account->current_pass)) {
return true;
}
次に、アクションを追加して選択します Send mail
[account:mail]
件名フィールドとメッセージフィールドを追加して入力します。