Ich wollte dem Benutzer eine grundlegende Benachrichtigungs-E-Mail senden, nachdem er das Passwort geändert hat, um ihn über die Änderung des Passworts zu informieren.
Ich benutze dafür Rules
Module. Aber ich finde dort keine Option, um eine Bedingung hinzuzufügen, wenn der Benutzer das Passwort geändert hat.
Kann ich auf irgendeine Weise überprüfen, ob der Benutzer sein Passwort mithilfe von Regeln oder pragmatisch geändert hat?
- Vielen Dank für Ihre Zeit.
Antworten:
Am einfachsten wäre es, dies mithilfe von Regeln zu tun. Befolgen Sie die nächsten Schritte, sollte die Arbeit erledigen.
return $account_unchanged->pass != $account->pass;
quelle
Ich habe es noch nie in Rules versucht, aber es würde wahrscheinlich darum gehen, Werte für die
$account
und$account->original
-Objekte zu vergleichen.Eine Möglichkeit, dies in benutzerdefiniertem Code zu tun, besteht darin, Folgendes zu implementieren
hook_user_presave()
:Sie könnten wahrscheinlich das Gleiche tun
hook_user_update()
, aber das habe ich noch nie versucht. Das Obige stammt aus einem Live-Projekt und funktioniert perfekt.quelle
Das Verwenden von Regeln ist möglicherweise einfacher, da Sie es bereits verwenden, Sie müssen jedoch das PHP-Filtermodul aktivieren .
Die Anweisungen wie folgt:
admin/modules
admin/config/workflow/rules
After updating an existing user account
Stellen Sie sicher, dass Sie aus der Dropdown-Liste Reagieren auf Ereignis auswählen auswählen .Execute custom PHP code
Fügen Sie den folgenden benutzerdefinierten PHP-Code in den Werteabschnitt ein
if(!empty($account->current_pass)) { return true; }
Fügen Sie dann eine Aktion hinzu und wählen Sie
Send mail
[account:mail]
und Nachrichtenfeld hinzu und füllen Sie es aus.quelle