Title: Fast2SMS &#8211; OTP Login &amp; SMS Notifications
Author: Fast2SMS
Published: <strong>جُلائی 11, 2026</strong>
Last modified: ستمبر 23, 2026

---

Search plugins

![](https://ps.w.org/fast2sms/assets/banner-772x250.png?rev=3603844)

![](https://ps.w.org/fast2sms/assets/icon-256x256.png?rev=3603844)

# Fast2SMS – OTP Login & SMS Notifications

 By [Fast2SMS](https://profiles.wordpress.org/fast2smsdev/)

[Download](https://downloads.wordpress.org/plugin/fast2sms.1.13.0.zip)

 * [Details](https://bcc.wordpress.org/plugins/fast2sms/#description)
 * [Reviews](https://bcc.wordpress.org/plugins/fast2sms/#reviews)
 *  [Installation](https://bcc.wordpress.org/plugins/fast2sms/#installation)
 * [Development](https://bcc.wordpress.org/plugins/fast2sms/#developers)

 [Support](https://wordpress.org/support/plugin/fast2sms/)

## Description

Add **OTP login**, **checkout OTP verification**, **WhatsApp and SMS order notifications**,**
abandoned cart recovery**, **COD verification** and **bulk campaigns** to WordPress
and WooCommerce with the official Fast2SMS plugin.

The plugin is completely free. Bring your own Fast2SMS API key — messages are billed
to your own Fast2SMS wallet at your account rates, and delivery reports stay in 
your own Fast2SMS panel. No monthly fee, no per-site licence.

#### WooCommerce order notifications — 25+ events

 * Order placed, pending payment, payment received, processing, on hold, completed,
   cancelled, refunded, partially refunded, failed and customer notes
 * Shipped, delivered and partially shipped — the statuses set by shipment-tracking
   plugins
 * **Custom order statuses detected automatically**: every status registered by 
   your courier or workflow plugin (In Transit, Out for Delivery, RTO, Packed…) 
   gets its own automation with its own template
 * Pending-payment reminder with a pay-now link that cancels itself once the order
   is paid
 * COD order alerts, one-tap **COD OTP verification** link to cut RTO, and a **COD-
   to-Prepaid** nudge inviting COD customers to pay online
 * **Abandoned cart recovery** with a configurable delay
 * **Review request** a set number of days after the order is completed
 * **Back-in-stock alerts** — customers subscribe on out-of-stock products and are
   messaged when you restock
 * Welcome message for new customers, and an optional admin copy of every message
 * Admin alerts for new orders, low stock and out-of-stock products

#### Templates, variables and previews

 * SMS, WhatsApp, or both per event — pick approved DLT / WhatsApp templates straight
   from your Fast2SMS account with a searchable picker and variable mapping
 * 25+ built-in variables: customer, order, items, totals, coupon, shipping method,
   pay link, order-status link and more — plus **any order meta key as a custom 
   variable** (tracking IDs, custom checkout fields)
 * WhatsApp media headers (image, video, PDF) with an **auto-generated PDF invoice**
   you can attach with `{invoice_url}`
 * WhatsApp **dynamic URL button variables** — templates whose Visit-website button
   carries a variable are mapped with a dedicated button-variable field
 * Live SMS and WhatsApp phone previews while you configure, and a one-click test
   send to your own number

#### OTP everywhere

 * Login with OTP on the WooCommerce login form and wp-login.php, with account creation
   for new numbers
 * Phone verification on signup/registration
 * **Checkout OTP verification**: the customer must verify their billing mobile 
   number before the order is placed — works with every payment gateway, box pre-
   filled with the billing number, your own title and colors
 * One-tap COD order verification after purchase
 * OTP verification on Contact Form 7 (`[fast2sms_otp]` tag), WPForms and Elementor
   Pro Forms (`[fast2sms_otp_verify]`)
 * `[fast2sms_otp_login]` shortcode for any page or page builder
 * Polished OTP screen: masked number (“OTP sent to 98XXXXXX10”), Edit number, resend
   countdown, light/dark theme, your accent color and corner style
 * Works with Smart OTP on SMS or WhatsApp (with automatic fallback), including 
   OTP templates with extra variables
 * Server-side protection: per-phone and per-IP send limits, attempt caps, OTP expiry
   and single-use verification tokens

#### Bulk campaigns

 * Send an approved template to all customers, all users, or a pasted/CSV list —
   immediately or scheduled
 * Queue-based sending with automatic retries, do-not-send list respected, full 
   logs

#### Consent, admin alerts and data

 * Opt-in consent checkbox at checkout and a do-not-send list for marketing messages
 * Up to 10 admin numbers for alerts; admin SMS/WhatsApp alert on form submissions;
   low-balance email alert
 * Wallet balance and SMS count in the dashboard header, 30-day stats
 * Message logs with masked phone numbers, one-click retry and CSV export
 * Phone numbers and API key encrypted at rest (AES-256-GCM), automatic data retention
   purge, WordPress privacy export/erase support
 * WooCommerce HPOS compatible; instant delivery via a real cron URL or WP-CLI (`
   wp fast2sms worker`), with WP-Cron as the fallback

Works without WooCommerce too — OTP login, form OTP, form alerts and campaigns run
on plain WordPress. WooCommerce-only features light up automatically when WooCommerce
is installed.

#### Requirements

 * A free account at [fast2sms.com](https://www.fast2sms.com) with your own API 
   key
 * For SMS: approved DLT templates in your Fast2SMS panel
 * For WhatsApp: approved WhatsApp templates in your Fast2SMS panel
 * For OTP: an OTP ID created in your Fast2SMS panel (Smart OTP section)
 * Target market: India (10-digit Indian mobile numbers)

#### Guides & documentation

 * [Complete setup guide](https://www.fast2sms.com/help/fast2sms-wordpress-plugin-setup-guide/)—
   every feature, step by step
 * [OTP login for WordPress](https://www.fast2sms.com/help/free-otp-login-wordpress/)
   and [for WooCommerce](https://www.fast2sms.com/help/woocommerce-otp-login/)
 * [SMS & WhatsApp order notifications](https://www.fast2sms.com/help/woocommerce-sms-whatsapp-order-notifications/)
   and [WhatsApp-only setup](https://www.fast2sms.com/help/woocommerce-whatsapp-notifications/)
 * [WhatsApp OTP with SMS fallback](https://www.fast2sms.com/help/whatsapp-otp-wordpress/)
 * [DLT registration explained for store owners](https://www.fast2sms.com/help/dlt-sms-wordpress/)
 * [Bulk SMS campaigns from WordPress](https://www.fast2sms.com/help/bulk-sms-wordpress-plugin/)
 * [WhatsApp Business API setup](https://www.fast2sms.com/help/whatsapp-business-api-wordpress/)

### External services

This plugin connects to the Fast2SMS API (https://www.fast2sms.com) to send SMS/
WhatsApp messages, send/verify OTPs, fetch your approved templates and read your
wallet balance. Your API key and the recipient phone numbers of messages you configure
are sent to Fast2SMS for this purpose. See the [Fast2SMS privacy policy](https://www.fast2sms.com/privacy-policy)
and [terms](https://www.fast2sms.com/terms-conditions).

## Screenshots

[⌊Dashboard — connected Fast2SMS account with wallet balance, setup checklist and
30-day stats.⌉⌊Dashboard — connected Fast2SMS account with wallet balance, setup
checklist and 30-day stats.⌉[

Dashboard — connected Fast2SMS account with wallet balance, setup checklist and 
30-day stats.

[⌊Automations — one toggle per WooCommerce event, with template pickers and live
phone previews.⌉⌊Automations — one toggle per WooCommerce event, with template pickers
and live phone previews.⌉[

Automations — one toggle per WooCommerce event, with template pickers and live phone
previews.

[⌊OTP & Login — Smart OTP setup with an end-to-end test and login form options.⌉⌊
OTP & Login — Smart OTP setup with an end-to-end test and login form options.⌉[

OTP & Login — Smart OTP setup with an end-to-end test and login form options.

[⌊Forms — OTP verification for Contact Form 7, WPForms and Elementor Pro Forms.⌉⌊
Forms — OTP verification for Contact Form 7, WPForms and Elementor Pro Forms.⌉[

Forms — OTP verification for Contact Form 7, WPForms and Elementor Pro Forms.

[⌊Campaigns — bulk composer with audience selection, scheduling and live message
preview.⌉⌊Campaigns — bulk composer with audience selection, scheduling and live
message preview.⌉[

Campaigns — bulk composer with audience selection, scheduling and live message preview.

[⌊Logs — full message history with one-click retry and CSV export.⌉⌊Logs — full 
message history with one-click retry and CSV export.⌉[

Logs — full message history with one-click retry and CSV export.

[⌊Settings — consent checkbox, do-not-send list, admin numbers and data retention.⌉⌊
Settings — consent checkbox, do-not-send list, admin numbers and data retention.⌉[

Settings — consent checkbox, do-not-send list, admin numbers and data retention.

[⌊Login with OTP as your customers see it, right inside the login form.⌉⌊Login with
OTP as your customers see it, right inside the login form.⌉[

Login with OTP as your customers see it, right inside the login form.

[[

## Installation

 1. Install and activate the plugin.
 2. Open the Fast2SMS menu in wp-admin.
 3. Paste your Fast2SMS API key — it is validated live against your account and stored
    encrypted.
 4. Enable the automations you want and pick templates fetched from your account.
 5. Recommended: add a real server cron for instant delivery (shown on the Dashboard
    tab). Without it, WP-Cron is used as a fallback.

## FAQ

### Does this plugin charge anything?

No. You bring your own Fast2SMS API key; message costs are billed by Fast2SMS to
your own wallet at your account’s rates.

### Does it work without WooCommerce?

Yes. OTP login, registration OTP, form OTP, form submission alerts and bulk campaigns
work on plain WordPress. Order notifications, checkout OTP, COD verification, abandoned
cart recovery and back-in-stock alerts require WooCommerce and unlock automatically
when it is installed.

### Can I require OTP verification at checkout?

Yes. Turn on Fast2SMS  OTP & Login  Checkout OTP verification. A “Verify your mobile
number” box appears below the billing details on the classic (shortcode) checkout,
pre-filled with the billing number, and the order is only accepted once that exact
number has been verified — before any payment gateway is called. You can skip it
for logged-in customers and give the box its own title and colors.

### My courier plugin adds custom order statuses. Can I message on those?

Yes, automatically. Every custom order status registered on your site (In Transit,
Out for Delivery, RTO and so on) appears as its own automation card in the Automations
tab — just pick a template for it.

### Can I use my own order fields as message variables?

Yes. Add the order meta keys (for example a tracking number saved by your shipping
plugin) under Settings  Custom variables and they become `{variables}` in every 
order automation.

### Which form plugins are supported?

Contact Form 7, WPForms and Elementor Pro Forms — both for OTP verification and 
admin submission alerts.

### How is customer data protected?

Phone numbers, message variables and your API key are encrypted at rest with AES-
256-GCM. Phones are masked in all screens and logs, and old records are purged automatically
on a schedule you control.

### Why do my messages need templates?

Indian DLT regulations require pre-approved sender IDs and templates for SMS. Manage
them in your Fast2SMS panel; the plugin fetches your approved templates for one-
click selection.

### Which countries are supported?

India only. Fast2SMS sends to Indian 10-digit mobile numbers with full DLT compliance
as required by TRAI. If your customers are outside India, this plugin is not for
you.

### Do I need DLT registration?

For SMS, yes — it is mandatory in India for every business. Fast2SMS provides free
dedicated DLT support to get you registered. WhatsApp messages need no DLT, only
Meta template approval. [DLT explained in simple English](https://www.fast2sms.com/help/dlt-sms-wordpress/).

### Can OTPs be delivered on WhatsApp?

Yes. Create a Smart OTP in your Fast2SMS panel with WhatsApp as the primary channel
and SMS as automatic fallback (or the other way around). The plugin follows whatever
the OTP ID is configured for — no code changes.

### Where do I get an API key?

Create a free account at [fast2sms.com](https://www.fast2sms.com) and copy the key
from the Dev API section. Paste it into the plugin dashboard and it is validated
live.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Fast2SMS – OTP Login & SMS Notifications” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ Fast2SMS ](https://profiles.wordpress.org/fast2smsdev/)
 *   [ Fast2SMS ](https://profiles.wordpress.org/sid2026/)

[Translate “Fast2SMS – OTP Login & SMS Notifications” into your language.](https://translate.wordpress.org/projects/wp-plugins/fast2sms)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/fast2sms/), check out
the [SVN repository](https://plugins.svn.wordpress.org/fast2sms/), or subscribe 
to the [development log](https://plugins.trac.wordpress.org/log/fast2sms/) by [RSS](https://plugins.trac.wordpress.org/log/fast2sms/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.13.0

 * Checkout OTP verification: require customers to verify their billing mobile number
   with OTP on the classic WooCommerce checkout before the order is placed — works
   with every payment gateway. Enable it under OTP & Login  Checkout OTP verification.
 * The checkout box pre-fills the billing number, offers “Verify a different number”
   after verifying, and only accepts orders with a server-verified OTP for the exact
   billing number (all rate limits and expiry enforced server-side).
 * Checkout box customization: its own title, theme (light/dark), accent color and
   corner style — or match the login form appearance, with a live preview.
 * No changes to existing automations, OTP login/signup, forms or COD verification;
   the feature is off by default.

#### 1.12.0

 * WhatsApp dynamic URL button variables: templates whose Visit-website button carries
   a {{n}} variable in its URL are now fully supported. The template picker flags
   them (🔘 button var), the mapping UI shows a dedicated “Button variable” dropdown(
   pre-set to a link variable like {order_status_url}), and the phone preview renders
   the button.
 * Works in order automations, campaigns and test sends. Existing rules and button-
   less templates are unaffected.

#### 1.11.1

 * Fix: four Settings fields (review delay, payment reminder, COD-to-Prepaid delay,
   custom variables) rendered with stray quote marks and did not auto-save, due 
   to malformed markup in 1.11.0.
 * Clear “saves automatically” notice at the top of the Settings and OTP tabs.

#### 1.11.0

 * Auto-detected custom order statuses: every status registered by courier/workflow
   plugins (In Transit, Out For Delivery, RTO…) now gets its own automation card
   automatically, each with its own template.
 * Custom variables: expose any order meta key (tracking IDs, custom checkout fields)
   as a {variable} in all order automations.
 * COD to Prepaid: invite COD customers to pay online via {pay_url}, with optional
   delay — cancels itself once paid.
 * Back in stock: customers can subscribe on out-of-stock products and get a message
   when restocked.
 * OTP variable builder: build the extra OTP template values from a dropdown — including
   the OTP code itself in additional slots — or static text.

#### 1.10.0

 * New order automations: Pending payment (with {pay_url} and an optional one-time
   reminder that cancels itself once paid), Shipped, Delivered and Partially Shipped(
   shipment-plugin statuses), Partially refunded (with {refund_amount}).
 * Custom order status automation: list any status slugs from courier/workflow plugins
   and message on them.
 * New variables: {pay_url} on every order event, {refund_amount} on partial refunds.

#### 1.9.0

 * OTP screen redesign: shows “OTP sent to 89XXXXXX26” with an Edit button to correct
   a wrong number, plus a cleaner “Didn’t receive it? Resend” row.
 * New admin options: allow/disallow number editing, and set the resend countdown(
   10–300 seconds).
 * OTP template variables: if your Smart OTP template has extra {#var#} placeholders,
   enable the option and set their values — sent with every OTP including COD verification.

#### 1.8.2

 * Maintenance release: ensures sites that installed a pre-release 1.8.1 build receive
   the final version, and refreshes cached admin scripts. No functional changes 
   beyond 1.8.1.

#### 1.8.1

 * Fix: OTP sending failed with “Could not start OTP verification” in 1.8.0 due 
   to an internal table-name error — please update immediately if you use OTP login
   or the OTP test.
 * The plugin now rebuilds missing database tables automatically and shows administrators
   the underlying database error when something goes wrong.
 * OTP & Login tab now saves automatically — and “Send test OTP” uses the OTP ID
   as you typed it, no save-then-scroll needed.
 * High-resolution logo and icon inside the plugin dashboard.

#### 1.8.0

 * Plugin review feedback: all scripts are now enqueued via wp_enqueue/wp_register_script(
   no inline script tags), every declaration/global/hook/stored key uses the full
   fast2sms_ prefix, and the terms URL is corrected.

#### 1.7.2

 * Nonce verification is now inline in every admin AJAX handler (visible to static
   analysis), in addition to the shared guard.

#### 1.7.1

 * Code-quality pass from Plugin Check feedback: fully literal table names in uninstall/
   privacy/storage queries, and the invoice snapshots table is now removed on uninstall
   too.

#### 1.7.0

 * Searchable template picker: find templates by message text, ID or sender — with
   the current selection highlighted.
 * Auto-generated invoice PDFs: attach a professional PDF invoice to WhatsApp messages
   via {invoice_url} — rendered on the fly, never stored as files.
 * WhatsApp previews now show your verified business name.
 * Test-send panel: pick channel and send to your primary or all admin numbers, 
   with per-number results and the Fast2SMS request_id for delivery-report tracing.
 * “Also alert admin” toggle per automation sends a copy of every message to your
   admin numbers.
 * Many new variables: {subtotal} {discount} {tax} {currency} {coupon_code} {shipping_method}{
   product_name} {order_status_url} {invoice_url} and more.
 * Logs: hover any row for the raw API response, bulk “Retry all failed”, CSV export
   with full numbers (admin-only).
 * Data & storage panel: see what the plugin stores, clean old data on demand — 
   plus automatic retention purging every cycle and a hard cap so storage can never
   fill up.
 * Admin numbers are now stored encrypted and shown masked; GDPR personal-data eraser
   support.
 * Do-not-send list now applies to marketing messages (cart reminders, campaigns,
   welcome, review requests) while transactional order updates still deliver.

#### 1.6.4

 * All Fast2SMS API calls now identify themselves with an xsource=wordpress parameter,
   so plugin traffic is distinguishable in the Fast2SMS backend.

#### 1.6.3

 * WordPress.org submission readiness: Plugin Check fixes (file encoding, fully 
   prepared SQL, i18n comment) and plugin renamed to comply with directory naming
   rules.

#### 1.6.1

 * Settings now auto-save — no more scrolling to a Save button.
 * Admin numbers are managed as chips (add one at a time, remove with one click),
   matching the do-not-send list UX.

#### 1.6.0

 * Opt-out / consent management: do-not-send list in Settings (queued messages skip
   it automatically) + optional “Send me order updates” consent checkbox at checkout.
 * Review request automation: ask for a product review N days after order completion,
   with {review_url}.
 * Scheduled campaigns: pick a date & time, the campaign fires then (site timezone).
 * Multiple admin numbers: comma-separated list — every admin alert goes to all 
   of them.
 * Campaign SMS now uses Fast2SMS’s multi-request bulk API (/dev/custom) — up to
   500 messages per API call, dramatically faster large campaigns.

#### 1.5.0

 * OTP setup test: send a real Smart OTP to your own number and verify it, straight
   from the OTP tab — and see which channel (SMS or WhatsApp) your OTP ID is configured
   for at Fast2SMS.

#### 1.4.1

 * Clear guidance when the connected account has no approved templates yet: fetching
   now explains to add DLT templates / approve WhatsApp templates in the Fast2SMS
   panel first.

#### 1.4.0

 * Cleaner automation editor: SMS and WhatsApp configs are now separated into clearly-
   labelled channel cards.
 * Fixed the WhatsApp preview header being cut by the phone notch.
 * More variables for WordPress events: {email}, {message}, {username}, {first_name},{
   site_url}, {date}, {time} on welcome/form events; {site_url} and {date} in campaigns.
 * Header now shows the official plugin title, support email (support@fast2sms.com)
   and a one-click “Recharge wallet” link (the wallet chip links to fast2sms.com
   too).
 * If your API key is changed or revoked in the Fast2SMS panel, wp-admin now shows
   a fix-it notice automatically (and clears it once a new key works).

#### 1.3.0

 * Send test: fire a real message with sample values from every automation and campaign,
   straight to your own number, before going live.
 * Setup checklist on the dashboard (click an item to jump to the right tab).
 * 30-day message stats (sent / failed / in queue) on the dashboard.
 * Logs: one-click retry for failed messages + CSV export.
 * Clear “Indian mobile numbers only” notes across the UI.

#### 1.2.0

 * Live phone-style previews: see the exact SMS and WhatsApp message (with mapped
   variables highlighted) beside every automation and campaign while you configure
   it.
 * OTP login form customizer: light/dark theme, accent color, corner style and custom
   title — with live preview.
 * UI polish across the admin.

#### 1.1.0

 * New automations: order processing, on hold, failed, note added to order, new-
   order admin alert, low-stock and out-of-stock admin alerts.
 * WhatsApp media headers: attach an image/PDF (e.g. order invoice) via media URL
   + document filename, with per-message variables.
 * Many more template variables: first/last name, order status, payment method, 
   order date, item count, first item, city, pincode, order URL.
 * OTP: SIM-swap protection — block OTP-only login for administrator accounts (on
   by default).
 * New minimal white/grey UI with blue accents and the Fast2SMS logo.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.13.0**
 *  Last updated **4 hours ago**
 *  Active installations **30+**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.0.6**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/fast2sms/)
 * Tags
 * [Bulk SMS](https://bcc.wordpress.org/plugins/tags/bulk-sms/)[otp](https://bcc.wordpress.org/plugins/tags/otp/)
   [sms](https://bcc.wordpress.org/plugins/tags/sms/)[whatsapp](https://bcc.wordpress.org/plugins/tags/whatsapp/)
   [woocommerce](https://bcc.wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://bcc.wordpress.org/plugins/fast2sms/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/fast2sms/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/fast2sms/reviews/)

## Contributors

 *   [ Fast2SMS ](https://profiles.wordpress.org/fast2smsdev/)
 *   [ Fast2SMS ](https://profiles.wordpress.org/sid2026/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/fast2sms/)