{"id":345,"date":"2026-05-04T10:39:14","date_gmt":"2026-05-04T08:39:14","guid":{"rendered":"https:\/\/developer.ps\/?p=345"},"modified":"2026-05-04T10:43:20","modified_gmt":"2026-05-04T08:43:20","slug":"sms-password-reset-for-moodle-a-simple-plugin-approach","status":"publish","type":"post","link":"https:\/\/developer.ps\/index.php\/2026\/05\/04\/sms-password-reset-for-moodle-a-simple-plugin-approach\/","title":{"rendered":"SMS Password Reset for Moodle: A Simple Plugin Approach"},"content":{"rendered":"\nPassword reset in Moodle is traditionally email-based, but that doesn\u2019t always fit real-world usage, especially in mobile-first environments or regions where email access is inconsistent.\n\n\n\nTo address this, I built a lightweight plugin that enables SMS-based password reset:\n\n\n\n&#x1f449; https:\/\/github.com\/dirar\/sms_password_reset\n\n\n\nThis post explains what it does, how it works, and where it fits best.\n\n\n\nWhy Add SMS Reset to Moodle?\n\n\n\nOut of the box, Moodle relies on email for password recovery. <a href=\"https:\/\/developer.ps\/index.php\/2026\/05\/04\/sms-password-reset-for-moodle-a-simple-plugin-approach\/\" class=\"more-link\">Read more [...]<\/a>","protected":false},"excerpt":{"rendered":"<p>Password reset in Moodle is traditionally email-based, but that doesn\u2019t always fit real-world usage, especially in mobile-first environments or regions where email access is inconsistent. To address this, I built a lightweight plugin that enables SMS-based password reset: &#x1f449; https:\/\/github.com\/dirar\/sms_password_reset This post explains what it does, how it works, and where it fits best. Why Add SMS Reset to Moodle? Out of the box, Moodle relies on email for password recovery. Read more [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[22,21],"tags":[],"class_list":["post-345","post","type-post","status-publish","format-standard","hentry","category-moodle","category-php"],"wps_subtitle":"","_links":{"self":[{"href":"https:\/\/developer.ps\/index.php\/wp-json\/wp\/v2\/posts\/345","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.ps\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/developer.ps\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/developer.ps\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.ps\/index.php\/wp-json\/wp\/v2\/comments?post=345"}],"version-history":[{"count":2,"href":"https:\/\/developer.ps\/index.php\/wp-json\/wp\/v2\/posts\/345\/revisions"}],"predecessor-version":[{"id":348,"href":"https:\/\/developer.ps\/index.php\/wp-json\/wp\/v2\/posts\/345\/revisions\/348"}],"wp:attachment":[{"href":"https:\/\/developer.ps\/index.php\/wp-json\/wp\/v2\/media?parent=345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/developer.ps\/index.php\/wp-json\/wp\/v2\/categories?post=345"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/developer.ps\/index.php\/wp-json\/wp\/v2\/tags?post=345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}