Chciałem wysłać użytkownikowi podstawowe powiadomienie e-mail po zmianie hasła, aby poinformować go o zmianie hasła.
Używam Rules
do tego modułów. Ale nie znajduję tam żadnej opcji, aby dodać warunek, jeśli użytkownik zmienił hasło.
Czy jest jakiś sposób, aby sprawdzić, czy użytkownik zmienił hasło przy użyciu reguł lub pragmatycznie.
-- Wielkie dzięki za twój czas.
Odpowiedzi:
Najłatwiej byłoby to zrobić za pomocą Reguł. Wykonując kolejne kroki, powinien wykonać zadanie.
return $account_unchanged->pass != $account->pass;
źródło
Nie próbowałem tego wcześniej w Regułach, ale prawdopodobnie będzie to kwestia porównania wartości w obiektach
$account
i$account->original
.Jednym ze sposobów na to w niestandardowym kodzie jest zaimplementowanie
hook_user_presave()
:Prawdopodobnie mógłbyś zrobić to samo
hook_user_update()
, ale nie próbowałem tego wcześniej. Powyższe pochodzi z projektu na żywo i działa idealnie.źródło
Korzystanie z reguł może być łatwiejsze, ponieważ już go używasz, ale musisz włączyć moduł PHP Filter .
Instrukcje w następujący sposób:
admin/modules
admin/config/workflow/rules
After updating an existing user account
React on event dropdow list.Execute custom PHP code
Dodaj następujący kod niestandardowy PHP w sekcji wartości
if(!empty($account->current_pass)) { return true; }
Następnie dodaj akcję i wybierz
Send mail
[account:mail]
i wypełnij pole tematu i pole komunikatu.źródło