{"id":227215,"date":"2025-04-03T12:25:34","date_gmt":"2025-04-03T12:25:34","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/otp-verification-for-gravity-forms\/"},"modified":"2026-03-12T10:02:26","modified_gmt":"2026-03-12T10:02:26","slug":"gravity-otp-verification","status":"publish","type":"plugin","link":"https:\/\/pl.wordpress.org\/plugins\/gravity-otp-verification\/","author":23221276,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"3.2.0","stable_tag":"3.2.0","tested":"6.8.5","requires":"","requires_php":"7.1","requires_plugins":null,"header_name":"Gravity Forms - OTP Verification (SMS\/EMAIL)","header_author":"Pigment.Dev","header_description":"This plugin ensures secure form submissions by verifying users' mobile numbers via OTP before saving","assets_banners_color":"f3f4f8","last_updated":"2026-03-12 10:02:26","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/pigment.dev\/contact\/","header_plugin_uri":"https:\/\/pigment.dev\/gravity-otp-verification\/","header_author_uri":"https:\/\/pigment.dev\/","rating":5,"author_block_rating":0,"active_installs":70,"downloads":1181,"num_ratings":1,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.5.0":{"tag":"2.5.0","author":"blackswanlab","date":"2025-04-03 12:45:23"},"2.6":{"tag":"2.6","author":"blackswanlab","date":"2025-04-30 13:14:09"},"2.6.0":{"tag":"2.6.0","author":"blackswanlab","date":"2025-04-30 13:26:26"},"2.7.0":{"tag":"2.7.0","author":"blackswanlab","date":"2025-05-15 10:38:24"},"3.0.0":{"tag":"3.0.0","author":"blackswanlab","date":"2025-09-03 16:26:50"},"3.0.1":{"tag":"3.0.1","author":"blackswanlab","date":"2025-09-03 23:22:17"},"3.1.0":{"tag":"3.1.0","author":"blackswanlab","date":"2026-03-12 08:14:35"},"3.2.0":{"tag":"3.2.0","author":"blackswanlab","date":"2026-03-12 10:02:26"}},"upgrade_notice":{"":"<p>Upgrade to enjoy the latest features and security improvements.<\/p>","v3.2.0 | 2026-03-12 | 1404-12-21":"<ul>\n<li>Fixed WP-SMS gateway integration for better compatibility with the latest version of the plugin.<\/li>\n<li>Fixed Critical error regarding WooCommerce SMS gateway integration.<\/li>\n<li>Fixed Unexpected Error on Sending Ajax form (if Debug enabled)<\/li>\n<li>Fixed Not Verifying OTPs correctly in some cases due to type mismatch<\/li>\n<li>Enhanced Error handling with use of Query Monitor plugin.<\/li>\n<\/ul>","v3.0.1 | 2025-09-03 | 1404-06-12":"<ul>\n<li>Updated Readme to added patchstack vdp link for reporting security bugs.<\/li>\n<\/ul>","v3.0.0 | 2025-08-04 | 1404-05-13":"<ul>\n<li>Added <strong>WP-SMS<\/strong> plugin as an OTP SMS gateway option.<\/li>\n<li>Added <strong>Email OTP verification<\/strong> alongside Mobile OTP verification.<\/li>\n<li>Added option to customize the email sender name and address for OTP emails.<\/li>\n<li>Introduced an email template (HTML) editor with a default template for OTP messages.<\/li>\n<li>Added <strong>Persian translation<\/strong> to WordPress plugin repository.<\/li>\n<li>Upgraded offloaded <strong>Font Awesome<\/strong> to version 7.<\/li>\n<\/ul>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3480915,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3480915,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3480915,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3480915,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.5.0","2.6","2.6.0","2.7.0","3.0.0","3.0.1","3.1.0","3.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3480915,"resolution":"1","location":"assets","locale":""},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3480915,"resolution":"10","location":"assets","locale":""},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3480915,"resolution":"11","location":"assets","locale":""},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3480915,"resolution":"12","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3480915,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3480915,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3480915,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3480915,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3480915,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3480915,"resolution":"7","location":"assets","locale":""},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3480915,"resolution":"8","location":"assets","locale":""},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3480915,"resolution":"9","location":"assets","locale":""}},"screenshots":{"1":"Gravity Form &gt; newly added <strong>OTP Field<\/strong>","2":"Gravity Form &gt; <strong>OTP Field<\/strong> Settings","3":"Sample OTP Email preview in Gmail","4":"Sample Form with Mobile OTP Field","5":"Mobile OTP Field (Waiting for User to enter code)","6":"Settings &gt; General","7":"Settings &gt; Mobile &gt; Sample Gateway Setting","8":"Settings &gt; Mobile &gt; WP-SMS Gateway Setting","9":"Settings &gt; Email Setting","10":"Settings &gt; Translation Panel","11":"Settings &gt; String Replace Panel","12":"Sent OTPs Log"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1655,43415,209327],"plugin_category":[42],"plugin_contributors":[211562,239259],"plugin_business_model":[],"class_list":["post-227215","plugin","type-plugin","status-publish","hentry","plugin_tags-gravity-forms","plugin_tags-phone-verification","plugin_tags-sms-authentication","plugin_category-contact-forms","plugin_contributors-amirhpcom","plugin_contributors-pigmentdev","plugin_committers-blackswanlab","plugin_committers-pigmentdev"],"banners":{"banner":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/banner-772x250.png?rev=3480915","banner_2x":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/banner-1544x500.png?rev=3480915","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/icon-128x128.png?rev=3480915","icon_2x":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/icon-256x256.png?rev=3480915","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/screenshot-1.png?rev=3480915","caption":"Gravity Form &gt; newly added <strong>OTP Field<\/strong>"},{"src":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/screenshot-2.png?rev=3480915","caption":"Gravity Form &gt; <strong>OTP Field<\/strong> Settings"},{"src":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/screenshot-3.png?rev=3480915","caption":"Sample OTP Email preview in Gmail"},{"src":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/screenshot-4.png?rev=3480915","caption":"Sample Form with Mobile OTP Field"},{"src":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/screenshot-5.png?rev=3480915","caption":"Mobile OTP Field (Waiting for User to enter code)"},{"src":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/screenshot-6.png?rev=3480915","caption":"Settings &gt; General"},{"src":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/screenshot-7.png?rev=3480915","caption":"Settings &gt; Mobile &gt; Sample Gateway Setting"},{"src":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/screenshot-8.png?rev=3480915","caption":"Settings &gt; Mobile &gt; WP-SMS Gateway Setting"},{"src":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/screenshot-9.png?rev=3480915","caption":"Settings &gt; Email Setting"},{"src":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/screenshot-10.png?rev=3480915","caption":"Settings &gt; Translation Panel"},{"src":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/screenshot-11.png?rev=3480915","caption":"Settings &gt; String Replace Panel"},{"src":"https:\/\/ps.w.org\/gravity-otp-verification\/assets\/screenshot-12.png?rev=3480915","caption":"Sent OTPs Log"}],"raw_content":"<!--section=description-->\n<p><strong>Gravity Forms - OTP Verification<\/strong> allows you to add <strong>One-Time Password (OTP) verification<\/strong> to Gravity Forms, ensuring that users enter a valid mobile number or email address before submitting a form. It helps prevent spam, fake submissions, and ensures real user authentication.<\/p>\n\n<h3><strong>Key Features:<\/strong><\/h3>\n\n<ul>\n<li>\ud83d\udd12 <strong>Secure Mobile Verification<\/strong> \u2013 Ensures users verify their phone numbers before submitting.<\/li>\n<li>\u2705 <strong>Seamless Gravity Forms Integration<\/strong> \u2013 Works with all versions of Gravity Forms without conflicts.<\/li>\n<li>\ud83c\udf0e <strong>Supports Persian, Arabic &amp; English Numbers<\/strong> \u2013 Converts and validates all number formats.<\/li>\n<li>\ud83d\udce1 <strong>Flexible SMS Gateway Support<\/strong> \u2013 Connects to multiple SMS providers via built-in integrations or custom hooks.<\/li>\n<li>\u2699\ufe0f <strong>Easy Setup<\/strong> \u2013 Configure in just a few clicks with user-friendly settings.<\/li>\n<\/ul>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Add an Mobile OTP field to <strong>any Gravity Form<\/strong>.<\/li>\n<li>Prevent form submission <strong>until mobile verification is successful<\/strong>.<\/li>\n<li>Support for <strong>multiple SMS gateways<\/strong> including custom integrations.<\/li>\n<li>Fully compatible with <strong>Gravity Forms\u2019 conditional logic<\/strong>.<\/li>\n<li>Users can <strong>resend OTP<\/strong> with a cooldown limit (e.g., <strong>3 attempts, 90 seconds each<\/strong>).<\/li>\n<li>Supports <strong>hooks &amp; filters<\/strong> to extend functionality.<\/li>\n<li>Works across <strong>all WordPress and WooCommerce sites<\/strong>.<\/li>\n<\/ul>\n\n<h3>Supported SMS Gateways<\/h3>\n\n<p>The plugin supports direct integration with popular SMS gateways as well as widely-used SMS plugins. You can send OTP messages using your preferred SMS provider or through supported SMS plugins for maximum flexibility.<\/p>\n\n<ul>\n<li><strong>Plugin: WSMS (formerly WP SMS) (over 300 gateways)<\/strong><\/li>\n<li><strong>Plugin: Persian WooCommerce SMS (over 100 gateways)<\/strong><\/li>\n<li><strong>Iranian Gateway: SMS.ir (v1\/v2)<\/strong><\/li>\n<li><strong>Iranian Gateway: FarazSMS<\/strong><\/li>\n<li><strong>Iranian Gateway: IPPanel<\/strong><\/li>\n<\/ul>\n\n<h3>Supported Email Gateways<\/h3>\n\n<p>The plugin uses the default WordPress email sending function (<code>wp_mail<\/code>). This means you are free to use <strong>any email service<\/strong> you want\u2014whether it\u2019s your web host\u2019s built-in mail, your WordPress site\u2019s configured SMTP settings, or a third-party SMTP plugin. Just configure your preferred email service, and OTP emails will be sent using that method.<\/p>\n\n<p>You can also fully customize the OTP email: set a custom sender name, sender address, subject, and modify the email template as HTML directly from the plugin settings.<\/p>\n\n<p>Additionally, you can add <strong>any other SMS gateway<\/strong> via <strong>WordPress hooks and filters<\/strong>.<\/p>\n\n<h3>How to Setup the Plugin<\/h3>\n\n<ol>\n<li><strong>Install &amp; Activate<\/strong> the plugin.<\/li>\n<li><strong>Go to Gravity Forms<\/strong> and create a form.<\/li>\n<li><strong>Add the OTP Field<\/strong> from the field settings.<\/li>\n<li><strong>Configure your SMS Gateway<\/strong> in plugin settings.<\/li>\n<li><strong>Save your form<\/strong>, and OTP verification will be active.<\/li>\n<\/ol>\n\n<h3>Third-Party &amp; External Resources Used<\/h3>\n\n<p>This plugin utilizes the following third-party libraries to enhance functionality:<\/p>\n\n<ul>\n<li><strong>Tippy.js<\/strong><\/li>\n<li><strong>Select2.js<\/strong><\/li>\n<li><strong>Datatables<\/strong><\/li>\n<li><strong>jQuery Confirm<\/strong><\/li>\n<li><strong>jQuery Repeater<\/strong><\/li>\n<li><strong>Font Awesome v.7<\/strong> (Used only for icons in the settings panel)<\/li>\n<\/ul>\n\n<h3>Disclaimer and Warranty<\/h3>\n\n<p>This plugin is provided <strong>\"as is\"<\/strong> without any warranties, express or implied. While every effort has been made to ensure reliability and security, the developers are not responsible for any issues arising from its use. Always test in a <strong>staging environment<\/strong> before deploying to production.<\/p>\n\n<h3>Contribution and Support<\/h3>\n\n<p>We welcome contributions to improve the plugin! If you have feature requests, bug reports, or suggestions, please create a GitHub issue or pull request.<\/p>\n\n<p>Github Repository: <a href=\"https:\/\/github.com\/pigment-dev\/gravity-otp-verification\">https:\/\/github.com\/pigment-dev\/gravity-otp-verification<\/a><\/p>\n\n<p>For support, contact us at <strong><a href=\"mailto:support@pigment.dev\">support (at) pigment (dot) dev<\/a><\/strong>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the <strong>WordPress plugins<\/strong> screen directly.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>Gravity Forms &gt; Your Form &gt; Add OTP Field<\/strong>.<\/li>\n<li>Configure your <strong>SMS Gateway<\/strong> in the plugin settings.<\/li>\n<li>Save your form, and you're good to go!<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20does%20otp%20verification%20work%3F\"><h3>How does OTP Verification work?<\/h3><\/dt>\n<dd><p>Once a user enters their mobile number or email address, they receive an <strong>OTP Code<\/strong>. They must <strong>enter the correct OTP<\/strong> before submitting the form.<\/p><\/dd>\n<dt id=\"can%20i%20use%20my%20own%20sms%20provider%3F\"><h3>Can I use my own SMS provider?<\/h3><\/dt>\n<dd><p>Yes! The plugin supports <strong>multiple SMS gateways<\/strong>, and you can <strong>add your own<\/strong> via hooks.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20support%20persian%20%26%20arabic%20numbers%3F\"><h3>Does this plugin support Persian &amp; Arabic numbers?<\/h3><\/dt>\n<dd><p>Yes! The plugin <strong>automatically converts<\/strong> Persian and Arabic numerals to English before validation.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20all%20gravity%20forms%20versions%3F\"><h3>Does it work with all Gravity Forms versions?<\/h3><\/dt>\n<dd><p>Yes! It is tested and compatible with <strong>all recent Gravity Forms versions<\/strong>.<\/p><\/dd>\n<dt id=\"how%20can%20i%20contribute%20to%20this%20plugin%3F\"><h3>How can I contribute to this plugin?<\/h3><\/dt>\n<dd><p>You can help us improve our works by committing your changes to <a href=\"https:\/\/github.com\/pigment-dev\/gravity-otp-verification\">pigment-dev\/gravity-otp-verification<\/a><\/p><\/dd>\n<dt id=\"how%20can%20i%20report%20security%20bugs%3F\"><h3>How can I report security bugs?<\/h3><\/dt>\n<dd><p>You can report security bugs through the Patchstack Vulnerability Disclosure Program. The Patchstack team helps validate, triage and handle any security vulnerabilities. <a href=\"https:\/\/patchstack.com\/database\/vdp\/db127ab7-a400-46ce-8355-be4d075e7ff8\">Report a security vulnerability.<\/a><\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<p>For the full changelog, please view the <a href=\"https:\/\/github.com\/pigment-dev\/gravity-otp-verification?tab=readme-ov-file#changelog\">Github Repository<\/a><\/p>\n\n<h4>v3.2.0 | 2026-03-12 | 1404-12-21<\/h4>\n\n<ul>\n<li>Fixed WP-SMS gateway integration for better compatibility with the latest version of the plugin.<\/li>\n<li>Fixed Critical error regarding WooCommerce SMS gateway integration.<\/li>\n<li>Fixed Unexpected Error on Sending Ajax form (if Debug enabled)<\/li>\n<li>Fixed Not Verifying OTPs correctly in some cases due to type mismatch<\/li>\n<li>Enhanced Error handling with use of Query Monitor plugin.<\/li>\n<\/ul>","raw_excerpt":"A powerful plugin for Gravity Forms that adds OTP verification via SMS\/Email to your forms for FREE.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/227215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=227215"}],"author":[{"embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pigmentdev"}],"wp:attachment":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=227215"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=227215"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=227215"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=227215"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=227215"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=227215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}