Je voulais envoyer un e-mail de notification de base à l'utilisateur, après qu'il a changé le mot de passe, pour l'informer du changement de mot de passe.
J'utilise des Rules
modules pour cela. Mais je n'y trouve aucune option, pour ajouter une condition si l'utilisateur a changé le mot de passe.
Existe-t-il un moyen de vérifier si l'utilisateur a changé son mot de passe à l'aide de règles ou de manière pragmatique.
-- Merci beaucoup pour votre temps.
Réponses:
Le plus simple serait de le faire en utilisant des règles. Après les étapes suivantes, devrait faire le travail.
return $account_unchanged->pass != $account->pass;
la source
Je ne l'ai pas essayé auparavant dans Rules, mais il s'agirait probablement de comparer des valeurs sur les objets
$account
et$account->original
.Une façon de le faire dans du code personnalisé consiste à implémenter
hook_user_presave()
:Vous pourriez probablement faire de même dans
hook_user_update()
, mais je n'ai jamais essayé cela auparavant. Ce qui précède est tiré d'un projet en direct et fonctionne parfaitement.la source
L'utilisation de règles peut être plus facile car vous l'utilisez déjà, mais vous devez activer le module Filtre PHP .
Les instructions comme suit:
admin/modules
admin/config/workflow/rules
After updating an existing user account
dans la liste déroulante Réagir sur l'événement.Execute custom PHP code
Ajoutez le code personnalisé PHP suivant dans la section valeur
if(!empty($account->current_pass)) { return true; }
Ajoutez ensuite une action et sélectionnez
Send mail
[account:mail]
et remplissez le champ objet et le champ message.la source