Saya ingin mengirim email pemberitahuan dasar kepada pengguna, setelah kata sandi diubah, untuk memberi tahu dia tentang perubahan kata sandi.
Saya menggunakan Rules
modul untuk itu. Tapi saya tidak menemukan opsi di sana, untuk menambah kondisi jika pengguna telah mengubah kata sandi.
Apakah ada cara saya dapat memeriksa apakah pengguna telah mengubah kata sandi menggunakan aturan atau secara pragmatis.
- Terima kasih banyak atas waktu Anda.
Jawaban:
Cara termudah adalah dengan menggunakan Aturan. Mengikuti langkah selanjutnya, harus melakukan pekerjaan.
return $account_unchanged->pass != $account->pass;
sumber
Saya belum mencobanya dalam Aturan sebelumnya, tetapi mungkin akan menjadi masalah membandingkan nilai pada objek
$account
dan$account->original
.Salah satu cara untuk melakukannya dalam kode khusus adalah dengan mengimplementasikan
hook_user_presave()
:Anda mungkin bisa melakukan hal yang sama
hook_user_update()
, tetapi saya belum pernah mencobanya sebelumnya. Di atas diambil dari proyek langsung dan bekerja dengan sempurna.sumber
Menggunakan Aturan mungkin lebih mudah karena Anda sudah menggunakannya, tetapi Anda perlu mengaktifkan modul Filter PHP .
Petunjuknya sebagai berikut:
admin/modules
admin/config/workflow/rules
After updating an existing user account
dari Bereaksi pada daftar acara dropdow.Execute custom PHP code
Tambahkan kode khusus PHP berikut di bagian nilai
if(!empty($account->current_pass)) { return true; }
Kemudian tambahkan tindakan dan pilih
Send mail
[account:mail]
dan isi bidang subjek dan bidang pesan.sumber