Я хотел отправить базовое уведомление по электронной почте пользователю, после того как он сменил пароль, чтобы сообщить ему об изменении пароля.
Я использую Rules
модули для этого. Но я не нахожу там никакой опции, чтобы добавить условие, если пользователь изменил пароль.
Есть ли способ проверить, изменил ли пользователь свой пароль, используя правила или прагматично.
- Большое спасибо за ваше время.
Ответы:
Проще всего сделать это с помощью правил. Следуя следующим шагам, следует сделать работу.
return $account_unchanged->pass != $account->pass;
источник
Я не пробовал его в правилах раньше, но это, вероятно , будет вопросом сравнения значений на
$account
и$account->original
объектах.Один из способов сделать это в пользовательском коде - реализовать
hook_user_presave()
:Вы могли бы сделать то же самое
hook_user_update()
, но я не пробовал это раньше. Вышесказанное взято из живого проекта и работает отлично.источник
Использование правил может быть проще, так как вы уже используете его, но вам нужно включить модуль PHP Filter .
Инструкции как следовать:
admin/modules
admin/config/workflow/rules
After updating an existing user account
из Реагировать на выпадающий список событий.Execute custom PHP code
Добавьте следующий пользовательский код PHP в раздел значения
if(!empty($account->current_pass)) { return true; }
Затем добавьте действие и выберите
Send mail
[account:mail]
и заполните поле темы и поле сообщения.источник