[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fhZRwg5KMRbVwUufGEsNZ7IYAzxoknuIyKikmY9YqXLs":3,"$fFAdvYnqTp7LfxPlXJRUswyCHr7MbbjE9Jn28SRfMJLw":755,"$f3PjSO3QIb2aM4_5I_rMPuwHT1G900mcdnFSpOwbezO8":759},{"slug":4,"name":5,"version":6,"author":4,"author_profile":7,"description":8,"short_description":9,"active_installs":10,"downloaded":11,"rating":10,"num_ratings":10,"last_updated":12,"tested_up_to":13,"requires_at_least":14,"requires_php":15,"tags":16,"homepage":22,"download_link":23,"security_score":24,"vuln_count":10,"unpatched_count":10,"last_vuln_date":25,"fetched_at":26,"discovery_status":27,"vulnerabilities":28,"developer":29,"crawl_stats":25,"alternatives":34,"analysis":136,"fingerprints":707},"kwtsms","kwtSMS: OTP & SMS Notifications","3.5.2","https:\u002F\u002Fprofiles.wordpress.org\u002Fkwtsms\u002F","\u003Cp>\u003Cstrong>kwtSMS\u003C\u002Fstrong> replaces or supplements WordPress passwords with SMS one-time codes, sends WooCommerce order updates automatically, and lets you verify phone numbers on any contact form. Built on the \u003Ca href=\"https:\u002F\u002Fwww.kwtsms.com\" rel=\"nofollow ugc\">kwtSMS\u003C\u002Fa> SMS gateway.\u003C\u002Fp>\n\u003Cp>Built for Arabic-speaking markets (Kuwait, Saudi Arabia, UAE, Bahrain, Qatar, Oman) with full RTL admin support and bilingual SMS templates in English and Arabic.\u003C\u002Fp>\n\u003Ch4>Authentication\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>2FA Mode:\u003C\u002Fstrong> users log in with username + password, then confirm with a 6-digit SMS code\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Passwordless Mode:\u003C\u002Fstrong> users enter their phone number and receive an OTP to log in directly, no password needed\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Both Modes:\u003C\u002Fstrong> let each user choose their preferred method\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Password Reset via SMS:\u003C\u002Fstrong> replace the email link with an SMS OTP verification flow\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Role-Based Enforcement:\u003C\u002Fstrong> configure which user roles must pass OTP (exclude administrators, apply only to customers, etc.)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Welcome SMS:\u003C\u002Fstrong> send a customisable welcome message when a new user registers\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Country Code Dropdown:\u003C\u002Fstrong> restrict the dial-code selector on login forms to GCC countries or a custom list\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>WooCommerce Integration\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>7 order status notifications:\u003C\u002Fstrong> Processing, On-Hold (Shipped), Completed, Cancelled, Pending Payment, Refunded, Failed\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Admin order notifications:\u003C\u002Fstrong> automatically notify a configurable admin phone number on any order status change\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Checkout OTP Gate:\u003C\u002Fstrong> require phone verification before the customer can place an order (all methods or COD-only)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Per-status templates:\u003C\u002Fstrong> independent English + Arabic SMS template for every order status\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Admin SMS panel:\u003C\u002Fstrong> send a custom free-text SMS to any order’s customer from the order edit screen\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Stock alerts:\u003C\u002Fstrong> low stock, out of stock, and backorder notifications to admin\u003C\u002Fli>\n\u003Cli>\u003Cstrong>New product SMS:\u003C\u002Fstrong> notify admin when a product is first published\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Back-in-stock notifications:\u003C\u002Fstrong> customers subscribe on out-of-stock product pages, SMS sent automatically on restock\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Instant new order SMS:\u003C\u002Fstrong> notify admin the moment an order is placed, before status processing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cart abandonment recovery:\u003C\u002Fstrong> detect abandoned carts, send recovery SMS with auto-generated coupon codes, track recovery stats on the dashboard\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multivendor support:\u003C\u002Fstrong> per-vendor order SMS for Dokan, WCFM, and WC Vendors\u003C\u002Fli>\n\u003Cli>HPOS (High-Performance Order Storage) compatible\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Contact Form Integrations\u003C\u002Fh4>\n\u003Cp>Each integration supports two modes: \u003Cstrong>Notification\u003C\u002Fstrong> (send a confirmation SMS on submit) and \u003Cstrong>OTP Gate\u003C\u002Fstrong> (block submission until the phone number is verified):\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Contact Form 7\u003C\u002Fli>\n\u003Cli>WPForms\u003C\u002Fli>\n\u003Cli>Ninja Forms\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Security\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Sliding-window rate limiting per phone number, per IP address, and per user account\u003C\u002Fli>\n\u003Cli>Duplicate OTP guard: reuses existing valid OTP on double-click or page reload\u003C\u002Fli>\n\u003Cli>IP Allowlist\u002FBlocklist with CIDR support for IPv4 and IPv6\u003C\u002Fli>\n\u003Cli>IPHub proxy\u002FVPN detection (optional): silently block or flag OTP requests from known proxies\u003C\u002Fli>\n\u003Cli>Registration OTP gate: verify phone via OTP before account creation\u003C\u002Fli>\n\u003Cli>Trusted Devices: trust a device for 30 days after 2FA, with profile revoke controls\u003C\u002Fli>\n\u003Cli>Phone blocking list: silently drop OTP requests from blocked numbers (anti-enumeration)\u003C\u002Fli>\n\u003Cli>Attempt lockout after configurable max failures\u003C\u002Fli>\n\u003Cli>Google reCAPTCHA v3 and Cloudflare Turnstile support\u003C\u002Fli>\n\u003Cli>All credentials stored server-side, never output to HTML\u003C\u002Fli>\n\u003Cli>Nonces on every form and AJAX action\u003C\u002Fli>\n\u003Cli>Anti-enumeration: password reset never reveals whether an account exists\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>External Services\u003C\u002Fh4>\n\u003Cp>This plugin connects to the following external services:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>1. kwtSMS API\u003C\u002Fstrong> (required): sends all SMS messages. \u003Ca href=\"https:\u002F\u002Fwww.kwtsms.com\" rel=\"nofollow ugc\">kwtsms.com\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.kwtsms.com\u002Fpolicy.html\" rel=\"nofollow ugc\">Terms\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.kwtsms.com\u002Fprivacy.html\" rel=\"nofollow ugc\">Privacy\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>2. ipapi.co\u003C\u002Fstrong> (optional): detects visitor country for dial-code pre-selection. \u003Ca href=\"https:\u002F\u002Fipapi.co\" rel=\"nofollow ugc\">ipapi.co\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fipapi.co\u002Fterms\u002F\" rel=\"nofollow ugc\">Terms\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fipapi.co\u002Fprivacy\u002F\" rel=\"nofollow ugc\">Privacy\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>3. IPHub\u003C\u002Fstrong> (optional): proxy\u002FVPN detection on OTP requests. \u003Ca href=\"https:\u002F\u002Fiphub.info\" rel=\"nofollow ugc\">iphub.info\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fiphub.info\u002Flegal\" rel=\"nofollow ugc\">Terms\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fiphub.info\u002Flegal\" rel=\"nofollow ugc\">Privacy\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>4. Google reCAPTCHA v3\u003C\u002Fstrong> (optional): bot protection on OTP forms. \u003Ca href=\"https:\u002F\u002Fwww.google.com\u002Frecaptcha\u002F\" rel=\"nofollow ugc\">google.com\u002Frecaptcha\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fpolicies.google.com\u002Fterms\" rel=\"nofollow ugc\">Terms\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fpolicies.google.com\u002Fprivacy\" rel=\"nofollow ugc\">Privacy\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>5. Cloudflare Turnstile\u003C\u002Fstrong> (optional): alternative bot protection. \u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fproducts\u002Fturnstile\u002F\" rel=\"nofollow ugc\">cloudflare.com\u002Fturnstile\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fterms\u002F\" rel=\"nofollow ugc\">Terms\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fprivacypolicy\u002F\" rel=\"nofollow ugc\">Privacy\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Admin\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Users Without Phone\u003C\u002Fstrong> sub-page under the WordPress Users menu: lists all registered users missing a phone number, with a dynamic count badge on the menu item\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Test Mode\u003C\u002Fh4>\n\u003Cp>Enable \u003Cstrong>Test Mode\u003C\u002Fstrong> in the Gateway settings to test without receiving real SMS messages. Messages are queued on the kwtSMS server but never delivered to the phone. Credits are still deducted. To recover them, log in to your kwtSMS account dashboard and delete the queued messages. The OTP code is visible under kwtSMS > Logs > Debug Log so you can complete flows during development.\u003C\u002Fp>\n\u003Ch4>Languages\u003C\u002Fh4>\n\u003Cp>Ships with English (default) and Arabic translations. The plugin admin UI and all user-facing strings are fully translatable.\u003C\u002Fp>\n\u003Ch3>Help & Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.kwtsms.com\u002Ffaq\u002F\" rel=\"nofollow ugc\">kwtSMS FAQ\u003C\u002Fa>\u003C\u002Fstrong>: Answers to common questions about credits, sender IDs, OTP, and delivery.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.kwtsms.com\u002Fsupport.html\" rel=\"nofollow ugc\">kwtSMS Support\u003C\u002Fa>\u003C\u002Fstrong>: Open a support ticket or browse help articles.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.kwtsms.com\u002F#contact\" rel=\"nofollow ugc\">Contact kwtSMS\u003C\u002Fa>\u003C\u002Fstrong>: Reach the kwtSMS team directly for Sender ID registration and account issues.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.kwtsms.com\u002Fsender-id-help.html\" rel=\"nofollow ugc\">Sender ID Help\u003C\u002Fa>\u003C\u002Fstrong>: Sender ID registration and guidelines.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.kwtsms.com\u002Flogin\u002F\" rel=\"nofollow ugc\">kwtSMS Dashboard\u003C\u002Fa>\u003C\u002Fstrong>: Recharge credits, buy Sender IDs, view message logs, and manage coverage.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwww.kwtsms.com\u002Fintegrations.html\" rel=\"nofollow ugc\">Other Integrations\u003C\u002Fa>\u003C\u002Fstrong>: Plugins and integrations for other platforms and languages.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fboxlinknet\u002Fkwtsms-wordpress\u002Fissues\" rel=\"nofollow ugc\">Plugin Issues\u003C\u002Fa>\u003C\u002Fstrong>: Report bugs or request features for this WordPress plugin.\u003C\u002Fli>\n\u003C\u002Ful>\n","SMS OTP login, password reset, and WooCommerce order notifications via the kwtSMS gateway. Arabic RTL support included.",0,92,"2026-03-25T18:29:00.000Z","6.9.4","6.0","7.4",[17,18,19,20,21],"authentication","login","otp","sms","woocommerce","https:\u002F\u002Fwww.kwtsms.com\u002Fintegrations.html","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fkwtsms.3.5.2.zip",100,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":4,"display_name":4,"profile_url":7,"plugin_count":30,"total_installs":10,"avg_security_score":24,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},1,30,94,"2026-05-20T02:54:24.716Z",[35,61,76,97,120],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":43,"downloaded":44,"rating":45,"num_ratings":46,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":15,"tags":50,"homepage":56,"download_link":57,"security_score":58,"vuln_count":59,"unpatched_count":10,"last_vuln_date":60,"fetched_at":26},"wp-sms","WSMS (formerly WP SMS) – SMS & MMS Notifications with OTP and 2FA for WooCommerce","7.2.4","VeronaLabs","https:\u002F\u002Fprofiles.wordpress.org\u002Fveronalabs\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fwsms.io\u002F?utm_source=wporg&utm_medium=link&utm_campaign=website\" rel=\"nofollow ugc\">WSMS\u003C\u002Fa> lets you send SMS\u002FMMS notifications, one-time passwords (OTP), and two-factor authentication (2FA) messages straight from WordPress. It supports a wide range of SMS gateways and integrates with popular e-commerce and form builder plugins.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Use WSMS to:\u003C\u002Fstrong>\u003Cbr \u002F>\n– Keep customers updated on WooCommerce orders\u003Cbr \u002F>\n– Collect subscribers with SMS newsletter forms\u003Cbr \u002F>\n– Secure logins with OTP & 2FA\u003Cbr \u002F>\n– Alert admins about new users, logins, or updates\u003Cbr \u002F>\n– Run marketing campaigns with scheduled or bulk SMS\u003C\u002Fp>\n\u003Cp>👉 \u003Ca href=\"https:\u002F\u002Fdemo.wsms.io\u002Fwp-login.php\" rel=\"nofollow ugc\">Check out the demo\u003C\u002Fa> | \u003Ca href=\"#screenshots\" rel=\"nofollow ugc\">View screenshots\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwsms.io\u002Fgateways?utm_source=wporg&utm_medium=link&utm_campaign=gateways\" rel=\"nofollow ugc\">See supported gateways\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwsms.io\u002Fintegrations?utm_source=wporg&utm_medium=link&utm_campaign=integrations\" rel=\"nofollow ugc\">Explore integrations\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwsms.io\u002Fdocs\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>✨ Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Send SMS\u002FMMS:\u003C\u002Fstrong> Send messages through your choice of supported SMS gateways.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>E-Commerce & Form Integration:\u003C\u002Fstrong> Seamlessly integrates with popular e-commerce platforms and form builders.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>OTP & 2FA:\u003C\u002Fstrong> Add extra login security with one-time passwords and two-factor authentication.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mobile Login:\u003C\u002Fstrong> Let users log in with their mobile number.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Admin Alerts:\u003C\u002Fstrong> Get notified when new users register, posts are published, or WordPress updates are available.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Newsletters & Widgets:\u003C\u002Fstrong> Build SMS newsletter forms with shortcodes, widgets, or Gutenberg blocks.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Two-Way SMS (All-in-One):\u003C\u002Fstrong> Receive and reply to SMS messages inside WordPress.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk & Scheduled SMS:\u003C\u002Fstrong> Send to multiple recipients at once, immediately or on schedule.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Third-Party Integration:\u003C\u002Fstrong> Connect with external services and automation platforms.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Messaging Button:\u003C\u002Fstrong> Let visitors reach you instantly via messaging channels.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>GDPR Compliant:\u003C\u002Fstrong> Built with privacy and compliance in mind.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>💎 Upgrade to WSMS All-in-One\u003C\u002Fh3>\n\u003Cp>Unlock additional features with \u003Cstrong>All-in-One\u003C\u002Fstrong> — the plan that gives you access to all premium add-ons in one package.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>With All-in-One you get:\u003C\u002Fstrong>\u003Cbr \u002F>\n– Secure login & registration with OTP & 2FA\u003Cbr \u002F>\n– Scheduled & recurring SMS\u002FMMS\u003Cbr \u002F>\n– Two-way SMS inbox\u003Cbr \u002F>\n– Enhanced e-commerce features (login, checkout verification, order updates)\u003Cbr \u002F>\n– Membership platform integrations\u003Cbr \u002F>\n– Advanced form builder SMS capabilities\u003Cbr \u002F>\n– Marketing automation integrations\u003Cbr \u002F>\n– Booking system compatibility\u003Cbr \u002F>\n– URL shortening service integration\u003Cbr \u002F>\n– All future add-ons included\u003C\u002Fp>\n\u003Cp>👉 \u003Ca href=\"https:\u002F\u002Fwsms.io\u002Fpricing\u002F?utm_source=wporg&utm_medium=link&utm_campaign=pricing\" rel=\"nofollow ugc\">See All-in-One details & compare features\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>🐞 Report Bugs & Security\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Found a bug? \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-sms\u002Fwp-sms\u002Fissues\u002Fnew\" rel=\"nofollow ugc\">Open an issue on GitHub\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Security concerns? Report them via the \u003Ca href=\"https:\u002F\u002Fpatchstack.com\u002Fdatabase\u002Fwordpress\u002Fplugin\u002Fwp-sms\u002Fvdp\" rel=\"nofollow ugc\">Patchstack VDP program\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>📝 Trademark Notice\u003C\u002Fh3>\n\u003Cp>WooCommerce, GravityForms, Elementor, Contact Form 7, Twilio, WhatsApp, Clickatell, BulkSMS, Plivo, Zapier, Bitly, and other product names mentioned are trademarks of their respective owners. WSMS is not affiliated with, endorsed by, or sponsored by these companies.\u003C\u002Fp>\n\u003Ch3>Source Code and Build Instructions\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Note:\u003C\u002Fstrong> The plugin works out of the box — no build steps required for regular users. This section is for developers who want to modify or contribute to the source code. See the \u003Ca href=\"https:\u002F\u002Fwsms.io\u002Fdocs\u002F\" rel=\"nofollow ugc\">full documentation\u003C\u002Fa> for user guides.\u003C\u002Fp>\n\u003Cp>All source code for minified JavaScript and CSS is included in the plugin under the \u003Ccode>resources\u002F\u003C\u002Fcode> directory. Build instructions and full source are available on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-sms\u002Fwp-sms\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Third-Party Libraries\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fchartjs\u002FChart.js\" rel=\"nofollow ugc\">Chart.js\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fflatpickr\u002Fflatpickr\" rel=\"nofollow ugc\">flatpickr\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjackocnr\u002Fintl-tel-input\" rel=\"nofollow ugc\">intlTelInput\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDubFriend\u002Fjquery.repeater\" rel=\"nofollow ugc\">jquery.repeater\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fqwertypants\u002FjQuery-Word-and-Character-Counter-Plugin\" rel=\"nofollow ugc\">jQuery Word and Character Counter\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffacebook\u002Freact\" rel=\"nofollow ugc\">React\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fselect2\u002Fselect2\" rel=\"nofollow ugc\">Select2\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftailwindlabs\u002Ftailwindcss\" rel=\"nofollow ugc\">Tailwind CSS\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcalebjacob\u002Ftooltipster\" rel=\"nofollow ugc\">Tooltipster\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fveronalabs\u002Fwp-scoper\" rel=\"nofollow ugc\">WP Scoper\u003C\u002Fa>\u003C\u002Fp>\n","Send SMS\u002FMMS notifications, OTP & 2FA messages, and WooCommerce updates with support for multiple gateways and plugin integrations.",8000,740730,82,107,"2026-04-15T05:44:00.000Z","7.0","4.1",[51,52,53,54,55],"2fa-authentication","bulk-sms","otp-login","sms-notifications","woocommerce-sms","https:\u002F\u002Fwsms.io\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-sms.7.2.4.zip",95,17,"2026-04-23 00:00:00",{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":42,"active_installs":68,"downloaded":69,"rating":10,"num_ratings":10,"last_updated":70,"tested_up_to":71,"requires_at_least":72,"requires_php":73,"tags":74,"homepage":73,"download_link":75,"security_score":24,"vuln_count":10,"unpatched_count":10,"last_vuln_date":25,"fetched_at":26},"ultimate-sms","Ultimate SMS Notifications – Messaging, Alerts & OTP","1.0.3","wpunicorn","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpunicorn\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fwpsmspro.com\u002F?utm_source=wporg&utm_medium=link&utm_campaign=website\" rel=\"nofollow ugc\">Ultimate SMS\u003C\u002Fa>: A powerful texting Plugin for WordPress, Receive SMS notifications as per the site’s activities, Inteagrate Your WordPress Website with Twilio API.\u003Cbr \u002F>\nAlso, You can send SMS to subscribers of the newsletter, any number or admin for any notifications in WordPress.\u003Cbr \u002F>\nThis plugin was created for this by using \u003Ca href=\"https:\u002F\u002Fwww.twilio.com\u002F\" rel=\"nofollow ugc\">Twilio\u003C\u002Fa> API,One of the best SMS solutions on the market. And they’re reasonably priced and have an excellent API.\u003C\u002Fp>\n\u003Cp>Here’s a list of what the plugin provides out of the box:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Custom function to easily send SMS messages to any number (including international ones)\u003C\u002Fli>\n\u003Cli>Functionality to directly send a text message to any permissible number from the plugin settings page\u003C\u002Fli>\n\u003Cli>Send Bulk SMS to all the users of the website or to a user role.\u003C\u002Fli>\n\u003Cli>Send SMS Newsletter to all the users of the website or to a user role or to a custom list of numbers.Many premium features and options are integrated within this one.\u003C\u002Fli>\n\u003Cli>Enable sending SMS notifications to the admin or any number about any activity on the website (New comment,New Post,..)\u003C\u002Fli>\n\u003Cli>Hooks to add additional tabs on the plugin settings page to allow managing all SMS related settings from the same page\u003C\u002Fli>\n\u003Cli>Basic logging capability to keep track of up to 100 entries\u003C\u002Fli>\n\u003Cli>Mobile Phone User Field added to each profile (optional)\u003C\u002Fli>\n\u003Cli>Shorten URLs using Bit.ly or Google URL Shortener API (optional)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Extend, Contribute, Integrate\u003C\u002Fp>\n\u003Cp>Disclaimer: This plugin is not affiliated with or supported by Twilio, Inc. All logos and trademarks are the property of their respective owners.\u003C\u002Fp>\n",10,1777,"2025-11-16T14:47:00.000Z","6.8.5","4.5","",[51,52,53,54,55],"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fultimate-sms.1.0.3.zip",{"slug":77,"name":78,"version":79,"author":80,"author_profile":81,"description":82,"short_description":83,"active_installs":84,"downloaded":85,"rating":86,"num_ratings":87,"last_updated":88,"tested_up_to":71,"requires_at_least":89,"requires_php":73,"tags":90,"homepage":92,"download_link":93,"security_score":94,"vuln_count":95,"unpatched_count":10,"last_vuln_date":96,"fetched_at":26},"login-with-phone-number","OTP Login With Phone Number, OTP Verification","1.8.62","Hamid Alinia","https:\u002F\u002Fprofiles.wordpress.org\u002Fglboy\u002F","\u003Cp>Enable OTP login for WordPress that supports WooCommerce using phone numbers, SMS, or WhatsApp. Secure passwordless login with custom gateways and GDPR compliance.\u003C\u002Fp>\n\u003Cp>Login\u002Fregister with phone number in WordPress can happen with this plugin. Your customer can authenticate with their mobile number via OTP.\u003C\u002Fp>\n\u003Cp>Added country flags to login with phone number form\u003C\u002Fp>\n\u003Cp>You can add almost every SMS gateways (if you have) yourself for free, or you can ask us to develop your sms gateway with paying extra.\u003C\u002Fp>\n\u003Cp>you can change style and appearance of forms\u003C\u002Fp>\n\u003Cp>You can use Firebase, textlocal and other SMS gateways\u003C\u002Fp>\n\u003Cp>For checking docs and getting more help please visit:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fidehweb.com\u002Fproduct\u002Flogin-with-phone-number-in-wordpress\u002F\" title=\"login with phone number in WordPress\" rel=\"nofollow ugc\">Login with phone number in WordPress documentations\u003C\u002Fa>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>Login with phone number in WordPress\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Login with OTP WordPress\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Login with mobile number WordPress\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Login\u002FRegister with E-mail\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>WordPress Login Form\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Woocommerce Registration Form\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Woocommerce Login With Phone Number\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>WordPress OTP Login\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Woocommerce Registration With Phone Number\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Add Phone Number to WordPress Registration\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Simple Use\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Support of International SMS Delivery\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Activating Users by Phone Number\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Password Recovery Form\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Page Authentication in Order to Visit Pages\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Login and Registration with Phone Number\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Redirect Users to Specific URLs After Logging in or Registering\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can use your custom gateway. you can also use other ready sms gateways from idehweb.com.\u003C\u002Fp>\n\u003Cp>Supported gateways for now:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Firebase – Free\u003C\u002Fli>\n\u003Cli>Msg91\u003C\u002Fli>\n\u003Cli>Twilio\u003C\u002Fli>\n\u003Cli>Netgsm\u003C\u002Fli>\n\u003Cli>Alibabacloud\u003C\u002Fli>\n\u003Cli>Messagebird\u003C\u002Fli>\n\u003Cli>Kavenegar\u003C\u002Fli>\n\u003Cli>Trustsignal\u003C\u002Fli>\n\u003Cli>taqnyat\u003C\u002Fli>\n\u003Cli>2factor\u003C\u002Fli>\n\u003Cli>Textlocal\u003C\u002Fli>\n\u003Cli>BlueSoft\u003C\u002Fli>\n\u003Cli>IQSMS\u003C\u002Fli>\n\u003Cli>Whatsapp\u003C\u002Fli>\n\u003Cli>Ultramessage\u003C\u002Fli>\n\u003Cli>Telegram\u003C\u002Fli>\n\u003Cli>Ippanel\u003C\u002Fli>\n\u003Cli>Sms.ir\u003C\u002Fli>\n\u003Cli>MelliPayamak\u003C\u002Fli>\n\u003Cli>Farazsms\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can now choose to store phone numbers with or without the country code.\u003C\u002Fp>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F0B0sE9JMzCE?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin uses external services to provide chat support and analyze user behavior. Below is the list of services used and what data is sent:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Crisp Chat\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>– Used to provide live chat functionality within the plugin for user support.\u003Cbr \u002F>\n– Data sent: user chat messages, name, email, IP address.\u003Cbr \u002F>\n– Service provider: Crisp IM SARL\u003Cbr \u002F>\n– Terms of Service: https:\u002F\u002Fcrisp.chat\u002Fen\u002Fterms\u002F\u003Cbr \u002F>\n– Privacy Policy: https:\u002F\u002Fcrisp.chat\u002Fen\u002Fprivacy\u002F\u003C\u002Fp>\n\u003Col>\n\u003Cli>Microsoft Clarity\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>– Used for user behavior analytics to understand how users interact with the plugin’s administrative pages.\u003Cbr \u002F>\n– Data sent: user interactions like mouse movements, clicks, and scrolling. Personally identifiable information (PII) is masked.\u003Cbr \u002F>\n– Service provider: Microsoft\u003Cbr \u002F>\n– Terms of Service: https:\u002F\u002Fclarity.microsoft.com\u002Fterms\u003Cbr \u002F>\n– Privacy Policy: https:\u002F\u002Fprivacy.microsoft.com\u002Fen-us\u002Fprivacystatement\u003C\u002Fp>\n\u003Col>\n\u003Cli>Firebase Authentication\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>– Used to verify users’ phone numbers with OTP for secure authentication.\u003Cbr \u002F>\n– Data sent: phone number and verification requests. IP addresses are used for security and abuse prevention.\u003Cbr \u002F>\n– Service provider: Google Firebase\u003Cbr \u002F>\n– Terms of Service: https:\u002F\u002Ffirebase.google.com\u002Fterms\u003Cbr \u002F>\n– Privacy Policy: https:\u002F\u002Ffirebase.google.com\u002Fsupport\u002Fprivacy\u003C\u002Fp>\n","OTP login with phone, SMS, or WhatsApp. OTP verification for WordPress & WooCommerce using custom gateways. GDPR-compliant. Login with otp",1000,128848,98,79,"2026-04-15T13:10:00.000Z","4.0",[18,19,91,20,21],"phone","https:\u002F\u002Fidehweb.com\u002Fproduct\u002Flogin-with-phone-number-in-wordpress\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flogin-with-phone-number.1.8.62.zip",86,13,"2025-08-14 13:55:12",{"slug":98,"name":99,"version":100,"author":101,"author_profile":102,"description":103,"short_description":104,"active_installs":68,"downloaded":105,"rating":106,"num_ratings":107,"last_updated":108,"tested_up_to":109,"requires_at_least":110,"requires_php":111,"tags":112,"homepage":117,"download_link":118,"security_score":119,"vuln_count":10,"unpatched_count":10,"last_vuln_date":25,"fetched_at":26},"mojoauth","MojoAuth Passwordless Authentication","2.7","MojoAuth","https:\u002F\u002Fprofiles.wordpress.org\u002Fmojoauth\u002F","\u003Cp>The \u003Ca href=\"https:\u002F\u002Fmojoauth.com\" rel=\"nofollow ugc\">MojoAuth\u003C\u002Fa> Passwordless Authentication WordPress plugin replaces standard WordPress login forms with the passwordless authentication method. It provides a robust and secure passwordless authentication mechanism to your WordPress site that offers the users a way to verify themselves while not having to remember or manually type passwords, which in turn provides stronger security and fewer breaches.\u003C\u002Fp>\n\u003Cp>Adding a passwordless authentication mechanism will help to create additional barriers to secure accounts of users. We updated the conventional password method of login with a safer authentication method, for example, log in through Email OTP, Magic Link, Social Login, Phone SMS and WebAuthn. This likewise cuts the additional progression of you fumbling over your failed to remember password.\u003C\u002Fp>\n\u003Ch3>KEY FEATURES\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Magic Link\u003C\u002Fstrong>: A unique link sent directly to your email which allows you to authenticate once and becomes invalid automatically once you are logged in.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>OTP\u003C\u002Fstrong>: A unique OTP sent directly to your email which allows you to authenticate once and becomes invalid automatically once you are logged in.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WebAuthn\u003C\u002Fstrong>: Allow users to authenticate with built-in authenticators like fingerprint, pin, or using security keys like YubiKey.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Social Login\u003C\u002Fstrong>: Allow your users to log in using Social login like Google, Facebook, Apple, etc., and increase sign-ups by removing the friction of passwords.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SMS Authentication\u003C\u002Fstrong>: Authenticate and verify your users using SMS OTP across all your applications and enable a secure, frictionless and customizable login experience for everyone.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Contributing\u003C\u002Fh3>\n\u003Cp>You can contribute or see sources to this plugin on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMojoAuth\u002Fmojoauth-wordpress\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>We offer 24\u002F7 support, reach out to our support team, or refer our product documents\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Live chat\u003C\u002Fli>\n\u003Cli>Email Support mailto:support@mojoauth.com\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fmojoauth.com\u002Fdocs\u002F\" rel=\"nofollow ugc\">Support documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","MojoAuth provides a secure and delightful experience to your customer with passwordless. Here, you'll find comprehensive guides and documentation &hellip;",2816,74,3,"2022-12-13T11:58:00.000Z","6.1.10","3.4","5.6",[17,113,114,115,116],"email-magic-link","email-otp","sms-authentication","social-login","https:\u002F\u002Fgithub.com\u002FMojoAuth\u002Fmojoauth-wordpress","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmojoauth.2.7.zip",85,{"slug":121,"name":122,"version":123,"author":124,"author_profile":125,"description":126,"short_description":127,"active_installs":10,"downloaded":128,"rating":10,"num_ratings":10,"last_updated":129,"tested_up_to":13,"requires_at_least":130,"requires_php":15,"tags":131,"homepage":134,"download_link":135,"security_score":24,"vuln_count":10,"unpatched_count":10,"last_vuln_date":25,"fetched_at":26},"g-online-sms","G Online SMS","2.2.2","G Online Sites","https:\u002F\u002Fprofiles.wordpress.org\u002Fgonlinesites\u002F","\u003Cp>\u003Cstrong>G Online SMS\u003C\u002Fstrong> connects your WordPress site to the \u003Ca href=\"https:\u002F\u002Fsms.gonlinesites.com\u002Fapp\" rel=\"nofollow ugc\">G Online SMS gateway\u003C\u002Fa> so you can send SMS messages automatically based on events in WordPress, or manually to any phone number.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>OTP \u002F Two-Factor Authentication:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>SMS verification code on WordPress login (2FA after password check).\u003C\u002Fli>\n\u003Cli>Phone number verification at WooCommerce checkout before order placement.\u003C\u002Fli>\n\u003Cli>Phone number confirmation on user registration.\u003C\u002Fli>\n\u003Cli>Verify new phone number when changed in WooCommerce My Account.\u003C\u002Fli>\n\u003Cli>Configurable code length (4–8 digits) and expiry (1–30 minutes).\u003C\u002Fli>\n\u003Cli>Maximum 3 failed attempts before code is invalidated.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Send single or bulk SMS\u003C\u002Fstrong> directly from the WordPress admin.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk SMS by user role\u003C\u002Fstrong> — target all subscribers, customers, or any custom role.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>User lifecycle notifications:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>Notify admin when a new user registers.\u003C\u002Fli>\n\u003Cli>Send a welcome SMS to every new user.\u003C\u002Fli>\n\u003Cli>Send a farewell SMS when an account is deleted.\u003C\u002Fli>\n\u003Cli>Optional login-alert SMS to admin.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WooCommerce integration:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>Customise SMS messages per order status (pending, processing, completed, refunded, etc.).\u003C\u002Fli>\n\u003Cli>Notify admin when a new order is placed.\u003C\u002Fli>\n\u003Cli>Supports rich order placeholders: \u003Ccode>{order_id}\u003C\u002Fcode>, \u003Ccode>{order_total}\u003C\u002Fcode>, \u003Ccode>{customer_name}\u003C\u002Fcode>, \u003Ccode>{order_items}\u003C\u002Fcode>, and many more.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Contact Form 7 integration:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>Send SMS to admin AND the form submitter simultaneously on submission.\u003C\u002Fli>\n\u003Cli>Per-form overrides via the Additional Settings tab.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Gravity Forms integration:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>Send SMS to admin AND the submitter when an entry is submitted.\u003C\u002Fli>\n\u003Cli>Use \u003Ccode>{field_id:N}\u003C\u002Fcode> or \u003Ccode>{Field Label}\u003C\u002Fcode> placeholders.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SMS Log\u003C\u002Fstrong> — every sent and failed message is recorded with status, recipient and trigger source.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Test SMS button\u003C\u002Fstrong> — verify your API key right from the settings page.\u003C\u002Fli>\n\u003Cli>Fully translatable (\u003Ccode>.pot\u003C\u002Fcode> file included).\u003C\u002Fli>\n\u003Cli>No Bootstrap or external CSS loaded site-wide — lightweight admin-only assets.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Supported Placeholders (WooCommerce)\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>{order_id} `{order_number}` `{order_total}` `{order_status}` `{order_date}` `{customer_name}` `{customer_first_name}` `{customer_last_name}` `{customer_email}` `{customer_phone}` `{billing_address}` `{shipping_address}` `{payment_method}` `{shipping_method}` `{order_items}` `{subtotal}` `{tax_amount}` `{currency}` `{coupon_code}` `{site_name}` `{site_url}`\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Supported Placeholders (User notifications)\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>{first_name} `{last_name}` `{display_name}` `{user_email}` `{user_login}` `{site_name}` `{site_url}`\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin connects to the \u003Cstrong>G Online SMS gateway\u003C\u002Fstrong> to send SMS messages and check account balance. This is a third-party service operated by G Online Sites.\u003C\u002Fp>\n\u003Ch4>What data is sent and when\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>When sending an SMS\u003C\u002Fstrong> — the recipient’s phone number, the message text, your Sender ID, and your API key are transmitted to the gateway. This happens every time an SMS is triggered (user registration, WooCommerce order status change, form submission, manual send, etc.).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When checking balance\u003C\u002Fstrong> — only your API key is sent. This happens each time the plugin dashboard page is loaded.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>No data is sent without your action\u003C\u002Fh4>\n\u003Cp>No data is ever transmitted unless you have entered a valid API key in the plugin settings. The plugin makes no external calls on the front end of your website.\u003C\u002Fp>\n\u003Ch4>Service provider details\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service:\u003C\u002Fstrong> G Online SMS — bulk SMS messaging gateway for Ghana and beyond.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Provider:\u003C\u002Fstrong> G Online Sites\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Gateway URL:\u003C\u002Fstrong> https:\u002F\u002Fsms.gonlinesites.com\u002Fapp\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms of Service:\u003C\u002Fstrong> https:\u002F\u002Fsms.gonlinesites.com\u002Fapp\u002Fterms\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy:\u003C\u002Fstrong> https:\u002F\u002Fsms.gonlinesites.com\u002Fapp\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>By using this plugin you agree to the terms of service and privacy policy of the G Online SMS gateway listed above.\u003C\u002Fp>\n","Send automated SMS notifications from WordPress — OTP\u002F2FA, WooCommerce orders, Contact Form 7, Gravity Forms and more.",267,"2026-04-05T00:04:00.000Z","6.2",[132,19,20,133,21],"notifications","two-factor-authentication","https:\u002F\u002Fsms.gonlinesites.com\u002Fapp","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fg-online-sms.2.2.2.zip",{"attackSurface":137,"codeSignals":608,"taintFlows":626,"riskAssessment":703,"analyzedAt":706},{"hooks":138,"ajaxHandlers":529,"restRoutes":605,"shortcodes":606,"cronEvents":607,"entryPointCount":319,"unprotectedCount":10},[139,145,149,152,156,160,164,169,173,175,179,182,186,190,194,199,205,210,214,218,222,225,227,231,235,239,242,246,250,254,257,261,264,266,269,272,275,277,280,283,287,289,291,295,297,301,304,307,310,313,317,320,323,327,331,336,339,343,347,352,357,361,364,366,370,373,376,378,381,384,388,391,394,396,400,404,407,411,414,419,423,425,426,427,428,429,430,431,432,433,435,436,437,438,439,441,443,445,446,447,448,449,450,452,453,454,455,456,457,459,460,461,462,463,464,466,467,468,469,470,471,472,473,475,476,477,478,479,480,481,482,483,484,486,487,489,490,492,493,495,497,498,499,500,502,503,504,505,506,507,509,510,511,512,513,514,515,516,517,519,520,524,526,528],{"type":140,"name":141,"callback":142,"file":143,"line":144},"action","admin_menu","register_menus","admin\u002Fclass-kwtsms-admin.php",56,{"type":140,"name":146,"callback":147,"file":143,"line":148},"admin_init","register_settings",57,{"type":140,"name":146,"callback":150,"file":143,"line":151},"handle_log_exports",58,{"type":140,"name":153,"callback":154,"file":143,"line":155},"admin_enqueue_scripts","enqueue_assets",59,{"type":140,"name":157,"callback":158,"file":143,"line":159},"admin_notices","show_admin_notices",60,{"type":140,"name":161,"callback":162,"file":143,"line":163},"wp_dashboard_setup","register_dashboard_widget",61,{"type":165,"name":166,"callback":167,"file":143,"line":168},"filter","get_user_option_meta-box-order_dashboard","force_widget_side_column",62,{"type":140,"name":170,"callback":171,"file":143,"line":172},"admin_head","closure",228,{"type":140,"name":153,"callback":171,"file":143,"line":174},238,{"type":140,"name":176,"callback":177,"priority":68,"file":178,"line":148},"user_register","on_user_register","includes\u002Fclass-kwtsms-admin-alerts.php",{"type":140,"name":180,"callback":181,"priority":68,"file":178,"line":163},"wp_login","on_wp_login",{"type":140,"name":183,"callback":184,"priority":68,"file":178,"line":185},"transition_post_status","on_post_published",65,{"type":140,"name":187,"callback":188,"priority":68,"file":178,"line":189},"comment_post","on_comment_posted",69,{"type":140,"name":191,"callback":192,"priority":68,"file":178,"line":193},"upgrader_process_complete","on_upgrader_complete",73,{"type":140,"name":195,"callback":196,"file":197,"line":198},"login_enqueue_scripts","enqueue_captcha_scripts","includes\u002Fclass-kwtsms-captcha.php",38,{"type":140,"name":200,"callback":201,"priority":202,"file":203,"line":204},"plugins_loaded","boot",20,"includes\u002Fclass-kwtsms-integrations.php",42,{"type":165,"name":206,"callback":207,"priority":31,"file":208,"line":209},"authenticate","intercept_login","includes\u002Fclass-kwtsms-login-otp.php",51,{"type":140,"name":211,"callback":212,"priority":68,"file":208,"line":213},"wp_login_failed","redirect_to_otp",52,{"type":140,"name":215,"callback":216,"file":208,"line":217},"login_init","handle_login_actions",53,{"type":140,"name":219,"callback":220,"file":208,"line":221},"login_form","add_passwordless_link",54,{"type":165,"name":223,"callback":224,"file":208,"line":151},"login_form_kwtsms_otp","__return_true",{"type":165,"name":226,"callback":224,"file":208,"line":155},"login_form_kwtsms_passwordless",{"type":140,"name":176,"callback":228,"priority":202,"file":229,"line":230},"maybe_send_welcome_on_register","includes\u002Fclass-kwtsms-plugin.php",115,{"type":140,"name":232,"callback":233,"priority":68,"file":229,"line":234},"password_reset","on_password_reset_revoke_devices",121,{"type":140,"name":236,"callback":237,"file":229,"line":238},"show_user_profile","render_trusted_devices_profile",124,{"type":140,"name":240,"callback":237,"file":229,"line":241},"edit_user_profile",125,{"type":140,"name":243,"callback":244,"file":229,"line":245},"login_footer","render_login_referral",129,{"type":140,"name":247,"callback":248,"file":229,"line":249},"wp_enqueue_scripts","enqueue_form_otp_assets",226,{"type":165,"name":251,"callback":252,"priority":30,"file":253,"line":45},"registration_errors","prepend_reg_url_error","includes\u002Fclass-kwtsms-registration-otp-gate.php",{"type":165,"name":251,"callback":255,"priority":68,"file":253,"line":256},"gate_registration",83,{"type":140,"name":258,"callback":259,"file":253,"line":260},"woocommerce_register_form","output_woo_register_nonce",84,{"type":165,"name":262,"callback":263,"priority":68,"file":253,"line":119},"woocommerce_registration_errors","gate_woo_registration",{"type":140,"name":215,"callback":265,"file":253,"line":94},"handle_reg_otp_page",{"type":165,"name":267,"callback":224,"file":253,"line":268},"login_form_kwtsms_reg_otp",89,{"type":140,"name":215,"callback":270,"priority":30,"file":271,"line":155},"maybe_intercept_password_reset","includes\u002Fclass-kwtsms-reset-otp.php",{"type":140,"name":273,"callback":274,"file":271,"line":159},"login_form_lostpassword","add_phone_field_to_lost_password",{"type":140,"name":215,"callback":276,"file":271,"line":163},"handle_reset_otp_action",{"type":165,"name":278,"callback":224,"file":271,"line":279},"login_form_kwtsms_reset_otp",64,{"type":140,"name":281,"callback":171,"file":271,"line":282},"lostpassword_post",120,{"type":165,"name":284,"callback":285,"file":271,"line":286},"send_retrieve_password_email","__return_false",134,{"type":165,"name":284,"callback":285,"file":271,"line":288},145,{"type":165,"name":284,"callback":285,"file":271,"line":290},192,{"type":140,"name":236,"callback":292,"file":293,"line":294},"render_phone_field","includes\u002Fclass-kwtsms-user-meta.php",23,{"type":140,"name":240,"callback":292,"file":293,"line":296},24,{"type":140,"name":298,"callback":299,"file":293,"line":300},"personal_options_update","save_phone_field",25,{"type":140,"name":302,"callback":299,"file":293,"line":303},"edit_user_profile_update",26,{"type":140,"name":157,"callback":305,"file":293,"line":306},"show_phone_error_notice",27,{"type":140,"name":308,"callback":309,"file":293,"line":31},"user_new_form","render_add_new_user_phone_field",{"type":140,"name":176,"callback":311,"file":293,"line":312},"save_add_new_user_phone",31,{"type":140,"name":314,"callback":315,"file":293,"line":316},"register_form","render_registration_phone_field",33,{"type":165,"name":251,"callback":318,"priority":68,"file":293,"line":319},"validate_registration_phone",34,{"type":140,"name":176,"callback":321,"file":293,"line":322},"save_registration_phone",35,{"type":165,"name":324,"callback":325,"priority":68,"file":326,"line":189},"wpcf7_before_send_mail","gate_verify_token","includes\u002Fintegrations\u002Fclass-kwtsms-cf7.php",{"type":140,"name":328,"callback":329,"priority":68,"file":326,"line":330},"wpcf7_submit","send_confirmation_sms_on_submit",75,{"type":165,"name":332,"callback":333,"file":334,"line":335},"ninja_forms_submit_fields","gate_validate_fields","includes\u002Fintegrations\u002Fclass-kwtsms-ninjaforms.php",80,{"type":140,"name":337,"callback":338,"file":334,"line":260},"ninja_forms_after_submission","send_notification",{"type":140,"name":340,"callback":341,"file":342,"line":185},"woocommerce_cart_updated","on_cart_updated","includes\u002Fintegrations\u002Fclass-kwtsms-woo-cart.php",{"type":140,"name":344,"callback":345,"file":342,"line":346},"woocommerce_checkout_order_created","on_order_created",68,{"type":140,"name":348,"callback":349,"file":350,"line":351},"add_meta_boxes","register_metabox","includes\u002Fintegrations\u002Fclass-kwtsms-woo-metabox.php",49,{"type":140,"name":353,"callback":354,"priority":68,"file":355,"line":356},"woocommerce_checkout_order_processed","on_new_order","includes\u002Fintegrations\u002Fclass-kwtsms-woo-multivendor.php",46,{"type":140,"name":358,"callback":359,"priority":68,"file":355,"line":360},"woocommerce_store_api_checkout_order_processed","on_new_order_from_block",48,{"type":140,"name":353,"callback":362,"priority":202,"file":355,"line":363},"on_vendor_order",55,{"type":140,"name":358,"callback":365,"priority":202,"file":355,"line":148},"on_vendor_order_from_block",{"type":140,"name":367,"callback":368,"priority":68,"file":369,"line":360},"woocommerce_low_stock","on_low_stock","includes\u002Fintegrations\u002Fclass-kwtsms-woo-stock.php",{"type":140,"name":371,"callback":372,"priority":68,"file":369,"line":209},"woocommerce_no_stock","on_no_stock",{"type":140,"name":374,"callback":375,"priority":68,"file":369,"line":221},"woocommerce_product_on_backorder","on_backorder",{"type":140,"name":183,"callback":377,"priority":68,"file":369,"line":155},"on_product_published",{"type":140,"name":379,"callback":380,"priority":68,"file":369,"line":279},"woocommerce_product_set_stock_status","on_stock_status_changed",{"type":140,"name":382,"callback":383,"priority":312,"file":369,"line":185},"woocommerce_single_product_summary","render_back_in_stock_form",{"type":140,"name":385,"callback":171,"file":386,"line":387},"before_woocommerce_init","includes\u002Fintegrations\u002Fclass-kwtsms-woo.php",66,{"type":140,"name":389,"callback":390,"priority":68,"file":386,"line":119},"woocommerce_order_status_changed","on_order_status_changed",{"type":140,"name":258,"callback":392,"file":386,"line":393},"render_wc_phone_field",88,{"type":165,"name":262,"callback":395,"priority":68,"file":386,"line":268},"validate_wc_phone_field",{"type":140,"name":397,"callback":398,"file":386,"line":399},"woocommerce_created_customer","save_wc_customer_phone",90,{"type":140,"name":401,"callback":402,"file":386,"line":403},"woocommerce_edit_account_form","output_account_nonce",91,{"type":140,"name":405,"callback":406,"file":386,"line":58},"woocommerce_after_order_notes","render_checkout_otp_field",{"type":140,"name":408,"callback":409,"file":386,"line":410},"woocommerce_checkout_process","process_checkout_otp",96,{"type":140,"name":344,"callback":412,"file":386,"line":413},"clear_checkout_otp_session",97,{"type":165,"name":415,"callback":416,"priority":68,"file":417,"line":418},"wpforms_process_initial_errors","gate_add_error","includes\u002Fintegrations\u002Fclass-kwtsms-wpforms.php",67,{"type":140,"name":420,"callback":421,"priority":68,"file":417,"line":422},"wpforms_process_complete","send_confirmation_sms",70,{"type":140,"name":141,"callback":142,"file":424,"line":144},"trunk\u002Fadmin\u002Fclass-kwtsms-admin.php",{"type":140,"name":146,"callback":147,"file":424,"line":148},{"type":140,"name":146,"callback":150,"file":424,"line":151},{"type":140,"name":153,"callback":154,"file":424,"line":155},{"type":140,"name":157,"callback":158,"file":424,"line":159},{"type":140,"name":161,"callback":162,"file":424,"line":163},{"type":165,"name":166,"callback":167,"file":424,"line":168},{"type":140,"name":170,"callback":171,"file":424,"line":172},{"type":140,"name":153,"callback":171,"file":424,"line":174},{"type":140,"name":176,"callback":177,"priority":68,"file":434,"line":148},"trunk\u002Fincludes\u002Fclass-kwtsms-admin-alerts.php",{"type":140,"name":180,"callback":181,"priority":68,"file":434,"line":163},{"type":140,"name":183,"callback":184,"priority":68,"file":434,"line":185},{"type":140,"name":187,"callback":188,"priority":68,"file":434,"line":189},{"type":140,"name":191,"callback":192,"priority":68,"file":434,"line":193},{"type":140,"name":195,"callback":196,"file":440,"line":198},"trunk\u002Fincludes\u002Fclass-kwtsms-captcha.php",{"type":140,"name":200,"callback":201,"priority":202,"file":442,"line":204},"trunk\u002Fincludes\u002Fclass-kwtsms-integrations.php",{"type":165,"name":206,"callback":207,"priority":31,"file":444,"line":209},"trunk\u002Fincludes\u002Fclass-kwtsms-login-otp.php",{"type":140,"name":211,"callback":212,"priority":68,"file":444,"line":213},{"type":140,"name":215,"callback":216,"file":444,"line":217},{"type":140,"name":219,"callback":220,"file":444,"line":221},{"type":165,"name":223,"callback":224,"file":444,"line":151},{"type":165,"name":226,"callback":224,"file":444,"line":155},{"type":140,"name":176,"callback":228,"priority":202,"file":451,"line":230},"trunk\u002Fincludes\u002Fclass-kwtsms-plugin.php",{"type":140,"name":232,"callback":233,"priority":68,"file":451,"line":234},{"type":140,"name":236,"callback":237,"file":451,"line":238},{"type":140,"name":240,"callback":237,"file":451,"line":241},{"type":140,"name":243,"callback":244,"file":451,"line":245},{"type":140,"name":247,"callback":248,"file":451,"line":249},{"type":165,"name":251,"callback":252,"priority":30,"file":458,"line":45},"trunk\u002Fincludes\u002Fclass-kwtsms-registration-otp-gate.php",{"type":165,"name":251,"callback":255,"priority":68,"file":458,"line":256},{"type":140,"name":258,"callback":259,"file":458,"line":260},{"type":165,"name":262,"callback":263,"priority":68,"file":458,"line":119},{"type":140,"name":215,"callback":265,"file":458,"line":94},{"type":165,"name":267,"callback":224,"file":458,"line":268},{"type":140,"name":215,"callback":270,"priority":30,"file":465,"line":155},"trunk\u002Fincludes\u002Fclass-kwtsms-reset-otp.php",{"type":140,"name":273,"callback":274,"file":465,"line":159},{"type":140,"name":215,"callback":276,"file":465,"line":163},{"type":165,"name":278,"callback":224,"file":465,"line":279},{"type":140,"name":281,"callback":171,"file":465,"line":282},{"type":165,"name":284,"callback":285,"file":465,"line":286},{"type":165,"name":284,"callback":285,"file":465,"line":288},{"type":165,"name":284,"callback":285,"file":465,"line":290},{"type":140,"name":236,"callback":292,"file":474,"line":294},"trunk\u002Fincludes\u002Fclass-kwtsms-user-meta.php",{"type":140,"name":240,"callback":292,"file":474,"line":296},{"type":140,"name":298,"callback":299,"file":474,"line":300},{"type":140,"name":302,"callback":299,"file":474,"line":303},{"type":140,"name":157,"callback":305,"file":474,"line":306},{"type":140,"name":308,"callback":309,"file":474,"line":31},{"type":140,"name":176,"callback":311,"file":474,"line":312},{"type":140,"name":314,"callback":315,"file":474,"line":316},{"type":165,"name":251,"callback":318,"priority":68,"file":474,"line":319},{"type":140,"name":176,"callback":321,"file":474,"line":322},{"type":165,"name":324,"callback":325,"priority":68,"file":485,"line":189},"trunk\u002Fincludes\u002Fintegrations\u002Fclass-kwtsms-cf7.php",{"type":140,"name":328,"callback":329,"priority":68,"file":485,"line":330},{"type":165,"name":332,"callback":333,"file":488,"line":335},"trunk\u002Fincludes\u002Fintegrations\u002Fclass-kwtsms-ninjaforms.php",{"type":140,"name":337,"callback":338,"file":488,"line":260},{"type":140,"name":340,"callback":341,"file":491,"line":185},"trunk\u002Fincludes\u002Fintegrations\u002Fclass-kwtsms-woo-cart.php",{"type":140,"name":344,"callback":345,"file":491,"line":346},{"type":140,"name":348,"callback":349,"file":494,"line":351},"trunk\u002Fincludes\u002Fintegrations\u002Fclass-kwtsms-woo-metabox.php",{"type":140,"name":353,"callback":354,"priority":68,"file":496,"line":356},"trunk\u002Fincludes\u002Fintegrations\u002Fclass-kwtsms-woo-multivendor.php",{"type":140,"name":358,"callback":359,"priority":68,"file":496,"line":360},{"type":140,"name":353,"callback":362,"priority":202,"file":496,"line":363},{"type":140,"name":358,"callback":365,"priority":202,"file":496,"line":148},{"type":140,"name":367,"callback":368,"priority":68,"file":501,"line":360},"trunk\u002Fincludes\u002Fintegrations\u002Fclass-kwtsms-woo-stock.php",{"type":140,"name":371,"callback":372,"priority":68,"file":501,"line":209},{"type":140,"name":374,"callback":375,"priority":68,"file":501,"line":221},{"type":140,"name":183,"callback":377,"priority":68,"file":501,"line":155},{"type":140,"name":379,"callback":380,"priority":68,"file":501,"line":279},{"type":140,"name":382,"callback":383,"priority":312,"file":501,"line":185},{"type":140,"name":385,"callback":171,"file":508,"line":387},"trunk\u002Fincludes\u002Fintegrations\u002Fclass-kwtsms-woo.php",{"type":140,"name":389,"callback":390,"priority":68,"file":508,"line":119},{"type":140,"name":258,"callback":392,"file":508,"line":393},{"type":165,"name":262,"callback":395,"priority":68,"file":508,"line":268},{"type":140,"name":397,"callback":398,"file":508,"line":399},{"type":140,"name":401,"callback":402,"file":508,"line":403},{"type":140,"name":405,"callback":406,"file":508,"line":58},{"type":140,"name":408,"callback":409,"file":508,"line":410},{"type":140,"name":344,"callback":412,"file":508,"line":413},{"type":165,"name":415,"callback":416,"priority":68,"file":518,"line":418},"trunk\u002Fincludes\u002Fintegrations\u002Fclass-kwtsms-wpforms.php",{"type":140,"name":420,"callback":421,"priority":68,"file":518,"line":422},{"type":140,"name":200,"callback":521,"file":522,"line":523},"kwtsms_otp_init","trunk\u002Fwp-kwtsms.php",126,{"type":140,"name":385,"callback":171,"file":522,"line":525},138,{"type":140,"name":200,"callback":521,"file":527,"line":523},"wp-kwtsms.php",{"type":140,"name":385,"callback":171,"file":527,"line":525},[530,536,539,542,546,550,554,556,560,564,566,570,572,576,580,584,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604],{"action":531,"nopriv":532,"callback":533,"hasNonce":534,"hasCapCheck":534,"file":143,"line":535},"kwtsms_get_coverage",false,"ajax_get_coverage",true,63,{"action":537,"nopriv":532,"callback":538,"hasNonce":534,"hasCapCheck":534,"file":143,"line":279},"kwtsms_logout_gateway","ajax_logout_gateway",{"action":540,"nopriv":532,"callback":541,"hasNonce":534,"hasCapCheck":534,"file":143,"line":185},"kwtsms_save_user_phone","ajax_save_user_phone",{"action":543,"nopriv":532,"callback":544,"hasNonce":534,"hasCapCheck":534,"file":229,"line":545},"kwtsms_verify_credentials","ajax_verify_credentials",207,{"action":547,"nopriv":532,"callback":548,"hasNonce":534,"hasCapCheck":534,"file":229,"line":549},"kwtsms_reload_all","ajax_reload_all",208,{"action":551,"nopriv":534,"callback":552,"hasNonce":534,"hasCapCheck":532,"file":229,"line":553},"kwtsms_resend_otp","ajax_resend_otp",211,{"action":551,"nopriv":532,"callback":552,"hasNonce":534,"hasCapCheck":532,"file":229,"line":555},212,{"action":557,"nopriv":532,"callback":558,"hasNonce":534,"hasCapCheck":534,"file":229,"line":559},"kwtsms_send_test_sms","ajax_send_test_sms",215,{"action":561,"nopriv":534,"callback":562,"hasNonce":534,"hasCapCheck":532,"file":229,"line":563},"kwtsms_form_send_otp","ajax_form_send_otp",218,{"action":561,"nopriv":532,"callback":562,"hasNonce":534,"hasCapCheck":532,"file":229,"line":565},219,{"action":567,"nopriv":534,"callback":568,"hasNonce":534,"hasCapCheck":532,"file":229,"line":569},"kwtsms_form_verify_otp","ajax_form_verify_otp",222,{"action":567,"nopriv":532,"callback":568,"hasNonce":534,"hasCapCheck":532,"file":229,"line":571},223,{"action":573,"nopriv":532,"callback":574,"hasNonce":534,"hasCapCheck":534,"file":229,"line":575},"kwtsms_revoke_device","ajax_revoke_device",229,{"action":577,"nopriv":532,"callback":578,"hasNonce":534,"hasCapCheck":534,"file":229,"line":579},"kwtsms_revoke_all_devices","ajax_revoke_all_devices",230,{"action":581,"nopriv":532,"callback":582,"hasNonce":534,"hasCapCheck":534,"file":350,"line":583},"kwtsms_woo_send_custom_sms","ajax_send_custom_sms",50,{"action":585,"nopriv":532,"callback":586,"hasNonce":534,"hasCapCheck":532,"file":369,"line":346},"kwtsms_back_in_stock_subscribe","ajax_back_in_stock_subscribe",{"action":585,"nopriv":534,"callback":586,"hasNonce":534,"hasCapCheck":532,"file":369,"line":189},{"action":531,"nopriv":532,"callback":533,"hasNonce":534,"hasCapCheck":534,"file":424,"line":535},{"action":537,"nopriv":532,"callback":538,"hasNonce":534,"hasCapCheck":534,"file":424,"line":279},{"action":540,"nopriv":532,"callback":541,"hasNonce":534,"hasCapCheck":534,"file":424,"line":185},{"action":543,"nopriv":532,"callback":544,"hasNonce":534,"hasCapCheck":534,"file":451,"line":545},{"action":547,"nopriv":532,"callback":548,"hasNonce":534,"hasCapCheck":534,"file":451,"line":549},{"action":551,"nopriv":534,"callback":552,"hasNonce":534,"hasCapCheck":532,"file":451,"line":553},{"action":551,"nopriv":532,"callback":552,"hasNonce":534,"hasCapCheck":532,"file":451,"line":555},{"action":557,"nopriv":532,"callback":558,"hasNonce":534,"hasCapCheck":534,"file":451,"line":559},{"action":561,"nopriv":534,"callback":562,"hasNonce":534,"hasCapCheck":532,"file":451,"line":563},{"action":561,"nopriv":532,"callback":562,"hasNonce":534,"hasCapCheck":532,"file":451,"line":565},{"action":567,"nopriv":534,"callback":568,"hasNonce":534,"hasCapCheck":532,"file":451,"line":569},{"action":567,"nopriv":532,"callback":568,"hasNonce":534,"hasCapCheck":532,"file":451,"line":571},{"action":573,"nopriv":532,"callback":574,"hasNonce":534,"hasCapCheck":534,"file":451,"line":575},{"action":577,"nopriv":532,"callback":578,"hasNonce":534,"hasCapCheck":534,"file":451,"line":579},{"action":581,"nopriv":532,"callback":582,"hasNonce":534,"hasCapCheck":534,"file":494,"line":583},{"action":585,"nopriv":532,"callback":586,"hasNonce":534,"hasCapCheck":532,"file":501,"line":346},{"action":585,"nopriv":534,"callback":586,"hasNonce":534,"hasCapCheck":532,"file":501,"line":189},[],[],[],{"dangerousFunctions":609,"sqlUsage":610,"outputEscaping":613,"fileOperations":623,"externalRequests":68,"nonceChecks":624,"capabilityChecks":221,"bundledLibraries":625},[],{"prepared":611,"raw":10,"locations":612},8,[],{"escaped":614,"rawEcho":615,"locations":616},2678,2,[617,621],{"file":618,"line":619,"context":620},"admin\u002Fviews\u002Fpage-users-no-phone.php",173,"raw output",{"file":622,"line":619,"context":620},"trunk\u002Fadmin\u002Fviews\u002Fpage-users-no-phone.php",6,78,[],[627,645,653,663,671,679,687,695],{"entryPoint":628,"graph":629,"unsanitizedCount":10,"severity":644},"render_registration_phone_field (includes\u002Fclass-kwtsms-user-meta.php:330)",{"nodes":630,"edges":642},[631,636],{"id":632,"type":633,"label":634,"file":293,"line":635},"n0","source","$_POST",334,{"id":637,"type":638,"label":639,"file":293,"line":640,"wp_function":641},"n1","sink","echo() [XSS]",345,"echo",[643],{"from":632,"to":637,"sanitized":534},"low",{"entryPoint":646,"graph":647,"unsanitizedCount":10,"severity":644},"\u003Cclass-kwtsms-user-meta> (includes\u002Fclass-kwtsms-user-meta.php:0)",{"nodes":648,"edges":651},[649,650],{"id":632,"type":633,"label":634,"file":293,"line":635},{"id":637,"type":638,"label":639,"file":293,"line":640,"wp_function":641},[652],{"from":632,"to":637,"sanitized":534},{"entryPoint":654,"graph":655,"unsanitizedCount":10,"severity":644},"render_wc_phone_field (includes\u002Fintegrations\u002Fclass-kwtsms-woo.php:269)",{"nodes":656,"edges":661},[657,659],{"id":632,"type":633,"label":634,"file":386,"line":658},275,{"id":637,"type":638,"label":639,"file":386,"line":660,"wp_function":641},288,[662],{"from":632,"to":637,"sanitized":534},{"entryPoint":664,"graph":665,"unsanitizedCount":10,"severity":644},"\u003Cclass-kwtsms-woo> (includes\u002Fintegrations\u002Fclass-kwtsms-woo.php:0)",{"nodes":666,"edges":669},[667,668],{"id":632,"type":633,"label":634,"file":386,"line":658},{"id":637,"type":638,"label":639,"file":386,"line":660,"wp_function":641},[670],{"from":632,"to":637,"sanitized":534},{"entryPoint":672,"graph":673,"unsanitizedCount":10,"severity":644},"render_registration_phone_field (trunk\u002Fincludes\u002Fclass-kwtsms-user-meta.php:330)",{"nodes":674,"edges":677},[675,676],{"id":632,"type":633,"label":634,"file":474,"line":635},{"id":637,"type":638,"label":639,"file":474,"line":640,"wp_function":641},[678],{"from":632,"to":637,"sanitized":534},{"entryPoint":680,"graph":681,"unsanitizedCount":10,"severity":644},"\u003Cclass-kwtsms-user-meta> (trunk\u002Fincludes\u002Fclass-kwtsms-user-meta.php:0)",{"nodes":682,"edges":685},[683,684],{"id":632,"type":633,"label":634,"file":474,"line":635},{"id":637,"type":638,"label":639,"file":474,"line":640,"wp_function":641},[686],{"from":632,"to":637,"sanitized":534},{"entryPoint":688,"graph":689,"unsanitizedCount":10,"severity":644},"render_wc_phone_field (trunk\u002Fincludes\u002Fintegrations\u002Fclass-kwtsms-woo.php:269)",{"nodes":690,"edges":693},[691,692],{"id":632,"type":633,"label":634,"file":508,"line":658},{"id":637,"type":638,"label":639,"file":508,"line":660,"wp_function":641},[694],{"from":632,"to":637,"sanitized":534},{"entryPoint":696,"graph":697,"unsanitizedCount":10,"severity":644},"\u003Cclass-kwtsms-woo> (trunk\u002Fincludes\u002Fintegrations\u002Fclass-kwtsms-woo.php:0)",{"nodes":698,"edges":701},[699,700],{"id":632,"type":633,"label":634,"file":508,"line":658},{"id":637,"type":638,"label":639,"file":508,"line":660,"wp_function":641},[702],{"from":632,"to":637,"sanitized":534},{"summary":704,"deductions":705},"The kwtsms plugin v3.5.2 exhibits a strong security posture based on the provided static analysis.  It demonstrates excellent adherence to secure coding practices by implementing prepared statements for all SQL queries and properly escaping all output. The plugin also incorporates a significant number of nonce and capability checks, indicating a conscious effort to protect its entry points.  The absence of any recorded vulnerabilities in its history further reinforces this positive assessment.\n\nWhile the static analysis shows no critical or high-severity taint flows and a complete lack of unprotected entry points across its AJAX handlers, REST API routes, shortcodes, and cron events, it's important to acknowledge the presence of 34 AJAX handlers. Although all appear to have authentication checks, a large number of potential interaction points, even when secured, can increase the overall complexity and the potential for undiscovered edge cases in authentication logic. The plugin also performs file operations and external HTTP requests, which inherently carry some level of risk, though the analysis doesn't indicate any specific issues with these operations in this version.\n\nIn conclusion, kwtsms v3.5.2 appears to be a well-secured plugin. The developers have implemented robust security measures, and its vulnerability history is clean. The primary area to remain vigilant about, as with any plugin with a substantial number of entry points, is the ongoing maintenance and review of its authentication and authorization mechanisms to prevent future vulnerabilities.",[],"2026-04-16T14:02:14.421Z",{"wat":708,"direct":723},{"assetPaths":709,"generatorPatterns":715,"scriptPaths":716,"versionParams":717},[710,711,712,713,714],"\u002Fwp-content\u002Fplugins\u002Fkwtsms\u002Fassets\u002Fcss\u002Fkwtsms-admin.css","\u002Fwp-content\u002Fplugins\u002Fkwtsms\u002Fassets\u002Fcss\u002Fkwtsms-otp.css","\u002Fwp-content\u002Fplugins\u002Fkwtsms\u002Fassets\u002Fjs\u002Fkwtsms-admin.js","\u002Fwp-content\u002Fplugins\u002Fkwtsms\u002Fassets\u002Fjs\u002Fkwtsms-otp.js","\u002Fwp-content\u002Fplugins\u002Fkwtsms\u002Fassets\u002Fjs\u002Fkwtsms-woo.js",[],[],[718,719,720,721,722],"kwtsms\u002Fassets\u002Fcss\u002Fkwtsms-admin.css?ver=","kwtsms\u002Fassets\u002Fcss\u002Fkwtsms-otp.css?ver=","kwtsms\u002Fassets\u002Fjs\u002Fkwtsms-admin.js?ver=","kwtsms\u002Fassets\u002Fjs\u002Fkwtsms-otp.js?ver=","kwtsms\u002Fassets\u002Fjs\u002Fkwtsms-woo.js?ver=",{"cssClasses":724,"htmlComments":739,"htmlAttributes":740,"restEndpoints":748,"jsGlobals":752,"shortcodeOutput":754},[725,726,727,728,729,730,731,732,733,734,735,736,737,738],"kwtsms-otp-login-form","kwtsms-otp-login-wrapper","kwtsms-otp-form-field","kwtsms-otp-button","kwtsms-otp-input","kwtsms-otp-loader","kwtsms-otp-message","kwtsms-otp-resend-button","kwtsms-otp-verify-button","kwtsms-otp-verification-form","kwtsms-otp-woocommerce-order-update-form","kwtsms-cf7-otp-field","kwtsms-wpforms-otp-field","kwtsms-ninja-forms-otp-field",[],[741,742,743,744,745,746,747],"data-kwtsms-otp-login-url","data-kwtsms-otp-verify-url","data-kwtsms-otp-resend-url","data-kwtsms-otp-nonce","data-kwtsms-cf7-integration","data-kwtsms-wpforms-integration","data-kwtsms-ninja-forms-integration",[749,750,751],"\u002Fwp-json\u002Fkwtsms\u002Fv1\u002Fotp\u002Flogin","\u002Fwp-json\u002Fkwtsms\u002Fv1\u002Fotp\u002Fverify","\u002Fwp-json\u002Fkwtsms\u002Fv1\u002Fotp\u002Fresend",[753],"kwtsms_otp_ajax_object",[],{"error":534,"url":756,"statusCode":757,"statusMessage":758,"message":758},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fkwtsms\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":30,"versions":760},[761],{"version":6,"download_url":23,"svn_tag_url":762,"released_at":25,"has_diff":532,"diff_files_changed":763,"diff_lines":25,"trac_diff_url":25,"vulnerabilities":764,"is_current":534},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fkwtsms\u002Ftags\u002F3.5.2\u002F",[],[]]