{"id":338724,"date":"2026-07-11T06:57:16","date_gmt":"2026-07-11T06:57:16","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/fast2sms-otp-login-sms-notifications\/"},"modified":"2026-09-23T19:44:58","modified_gmt":"2026-09-23T19:44:58","slug":"fast2sms","status":"publish","type":"plugin","link":"https:\/\/ps.wordpress.org\/plugins\/fast2sms\/","author":23530896,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.13.0","stable_tag":"1.13.0","tested":"7.0.6","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Fast2SMS - OTP Login & SMS Notifications","header_author":"Fast2SMS","header_description":"Official Fast2SMS plugin. SMS & WhatsApp order notifications, OTP login\/signup, COD order verification, abandoned cart recovery, bulk campaigns and form OTP for WordPress & WooCommerce.","assets_banners_color":"18212f","last_updated":"2026-09-23 19:44:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.fast2sms.com\/help\/fast2sms-wordpress-plugin-setup-guide\/","header_author_uri":"https:\/\/www.fast2sms.com","rating":0,"author_block_rating":0,"active_installs":30,"downloads":721,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.10.0":{"tag":"1.10.0","author":"fast2smsdev","date":"2026-08-17 08:06:38","revision":3650669},"1.11.0":{"tag":"1.11.0","author":"fast2smsdev","date":"2026-08-18 04:04:10","revision":3651990},"1.11.1":{"tag":"1.11.1","author":"fast2smsdev","date":"2026-08-20 11:27:06","revision":3656657},"1.12.0":{"tag":"1.12.0","author":"fast2smsdev","date":"2026-09-22 10:00:09","revision":3707019},"1.13.0":{"tag":"1.13.0","author":"fast2smsdev","date":"2026-09-23 19:44:58","revision":3710078},"1.8.0":{"tag":"1.8.0","author":"fast2smsdev","date":"2026-07-11 10:34:03","revision":3603837},"1.8.1":{"tag":"1.8.1","author":"fast2smsdev","date":"2026-07-22 09:39:33","revision":3618367},"1.8.2":{"tag":"1.8.2","author":"fast2smsdev","date":"2026-07-22 09:46:10","revision":3618381},"1.9.0":{"tag":"1.9.0","author":"fast2smsdev","date":"2026-08-17 06:01:37","revision":3650498}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3603844,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3603844,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3603844,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3603844,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.10.0","1.11.0","1.11.1","1.12.0","1.13.0","1.8.0","1.8.1","1.8.2","1.9.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3603667,"resolution":"1","location":"assets","locale":"","width":1440,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3603667,"resolution":"2","location":"assets","locale":"","width":1440,"height":1000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3603667,"resolution":"3","location":"assets","locale":"","width":1440,"height":1000},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3603667,"resolution":"4","location":"assets","locale":"","width":1440,"height":1000},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3603667,"resolution":"5","location":"assets","locale":"","width":1440,"height":1000},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3603667,"resolution":"6","location":"assets","locale":"","width":1440,"height":1000},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3603667,"resolution":"7","location":"assets","locale":"","width":1440,"height":1000},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3603667,"resolution":"8","location":"assets","locale":"","width":800,"height":900},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3603667,"resolution":"9","location":"assets","locale":"","width":1440,"height":1000}},"screenshots":{"1":"Dashboard \u2014 connected Fast2SMS account with wallet balance, setup checklist and 30-day stats.","2":"Automations \u2014 one toggle per WooCommerce event, with template pickers and live phone previews.","3":"OTP &amp; Login \u2014 Smart OTP setup with an end-to-end test and login form options.","4":"Forms \u2014 OTP verification for Contact Form 7, WPForms and Elementor Pro Forms.","5":"Campaigns \u2014 bulk composer with audience selection, scheduling and live message preview.","6":"Logs \u2014 full message history with one-click retry and CSV export.","7":"Settings \u2014 consent checkbox, do-not-send list, admin numbers and data retention.","8":"Login with OTP as your customers see it, right inside the login form."}},"plugin_section":[],"plugin_tags":[57809,9210,711,3160,286],"plugin_category":[41,45],"plugin_contributors":[271021,271022],"plugin_business_model":[],"class_list":["post-338724","plugin","type-plugin","status-publish","hentry","plugin_tags-bulk-sms","plugin_tags-otp","plugin_tags-sms","plugin_tags-whatsapp","plugin_tags-woocommerce","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-fast2smsdev","plugin_contributors-sid2026","plugin_committers-fast2smsdev"],"banners":{"banner":"https:\/\/ps.w.org\/fast2sms\/assets\/banner-772x250.png?rev=3603844","banner_2x":"https:\/\/ps.w.org\/fast2sms\/assets\/banner-1544x500.png?rev=3603844","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/fast2sms\/assets\/icon-128x128.png?rev=3603844","icon_2x":"https:\/\/ps.w.org\/fast2sms\/assets\/icon-256x256.png?rev=3603844","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/fast2sms\/assets\/screenshot-1.png?rev=3603667","caption":"Dashboard \u2014 connected Fast2SMS account with wallet balance, setup checklist and 30-day stats."},{"src":"https:\/\/ps.w.org\/fast2sms\/assets\/screenshot-2.png?rev=3603667","caption":"Automations \u2014 one toggle per WooCommerce event, with template pickers and live phone previews."},{"src":"https:\/\/ps.w.org\/fast2sms\/assets\/screenshot-3.png?rev=3603667","caption":"OTP &amp; Login \u2014 Smart OTP setup with an end-to-end test and login form options."},{"src":"https:\/\/ps.w.org\/fast2sms\/assets\/screenshot-4.png?rev=3603667","caption":"Forms \u2014 OTP verification for Contact Form 7, WPForms and Elementor Pro Forms."},{"src":"https:\/\/ps.w.org\/fast2sms\/assets\/screenshot-5.png?rev=3603667","caption":"Campaigns \u2014 bulk composer with audience selection, scheduling and live message preview."},{"src":"https:\/\/ps.w.org\/fast2sms\/assets\/screenshot-6.png?rev=3603667","caption":"Logs \u2014 full message history with one-click retry and CSV export."},{"src":"https:\/\/ps.w.org\/fast2sms\/assets\/screenshot-7.png?rev=3603667","caption":"Settings \u2014 consent checkbox, do-not-send list, admin numbers and data retention."},{"src":"https:\/\/ps.w.org\/fast2sms\/assets\/screenshot-8.png?rev=3603667","caption":"Login with OTP as your customers see it, right inside the login form."},{"src":"https:\/\/ps.w.org\/fast2sms\/assets\/screenshot-9.png?rev=3603667","caption":""}],"raw_content":"<!--section=description-->\n<p>Add <strong>OTP login<\/strong>, <strong>checkout OTP verification<\/strong>, <strong>WhatsApp and SMS order notifications<\/strong>, <strong>abandoned cart recovery<\/strong>, <strong>COD verification<\/strong> and <strong>bulk campaigns<\/strong> to WordPress and WooCommerce with the official Fast2SMS plugin.<\/p>\n\n<p>The plugin is completely free. Bring your own Fast2SMS API key \u2014 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.<\/p>\n\n<h4>WooCommerce order notifications \u2014 25+ events<\/h4>\n\n<ul>\n<li>Order placed, pending payment, payment received, processing, on hold, completed, cancelled, refunded, partially refunded, failed and customer notes<\/li>\n<li>Shipped, delivered and partially shipped \u2014 the statuses set by shipment-tracking plugins<\/li>\n<li><strong>Custom order statuses detected automatically<\/strong>: every status registered by your courier or workflow plugin (In Transit, Out for Delivery, RTO, Packed\u2026) gets its own automation with its own template<\/li>\n<li>Pending-payment reminder with a pay-now link that cancels itself once the order is paid<\/li>\n<li>COD order alerts, one-tap <strong>COD OTP verification<\/strong> link to cut RTO, and a <strong>COD-to-Prepaid<\/strong> nudge inviting COD customers to pay online<\/li>\n<li><strong>Abandoned cart recovery<\/strong> with a configurable delay<\/li>\n<li><strong>Review request<\/strong> a set number of days after the order is completed<\/li>\n<li><strong>Back-in-stock alerts<\/strong> \u2014 customers subscribe on out-of-stock products and are messaged when you restock<\/li>\n<li>Welcome message for new customers, and an optional admin copy of every message<\/li>\n<li>Admin alerts for new orders, low stock and out-of-stock products<\/li>\n<\/ul>\n\n<h4>Templates, variables and previews<\/h4>\n\n<ul>\n<li>SMS, WhatsApp, or both per event \u2014 pick approved DLT \/ WhatsApp templates straight from your Fast2SMS account with a searchable picker and variable mapping<\/li>\n<li>25+ built-in variables: customer, order, items, totals, coupon, shipping method, pay link, order-status link and more \u2014 plus <strong>any order meta key as a custom variable<\/strong> (tracking IDs, custom checkout fields)<\/li>\n<li>WhatsApp media headers (image, video, PDF) with an <strong>auto-generated PDF invoice<\/strong> you can attach with <code>{invoice_url}<\/code><\/li>\n<li>WhatsApp <strong>dynamic URL button variables<\/strong> \u2014 templates whose Visit-website button carries a variable are mapped with a dedicated button-variable field<\/li>\n<li>Live SMS and WhatsApp phone previews while you configure, and a one-click test send to your own number<\/li>\n<\/ul>\n\n<h4>OTP everywhere<\/h4>\n\n<ul>\n<li>Login with OTP on the WooCommerce login form and wp-login.php, with account creation for new numbers<\/li>\n<li>Phone verification on signup\/registration<\/li>\n<li><strong>Checkout OTP verification<\/strong>: the customer must verify their billing mobile number before the order is placed \u2014 works with every payment gateway, box pre-filled with the billing number, your own title and colors<\/li>\n<li>One-tap COD order verification after purchase<\/li>\n<li>OTP verification on Contact Form 7 (<code>[fast2sms_otp]<\/code> tag), WPForms and Elementor Pro Forms (<code>[fast2sms_otp_verify]<\/code>)<\/li>\n<li><code>[fast2sms_otp_login]<\/code> shortcode for any page or page builder<\/li>\n<li>Polished OTP screen: masked number (\"OTP sent to 98XXXXXX10\"), Edit number, resend countdown, light\/dark theme, your accent color and corner style<\/li>\n<li>Works with Smart OTP on SMS or WhatsApp (with automatic fallback), including OTP templates with extra variables<\/li>\n<li>Server-side protection: per-phone and per-IP send limits, attempt caps, OTP expiry and single-use verification tokens<\/li>\n<\/ul>\n\n<h4>Bulk campaigns<\/h4>\n\n<ul>\n<li>Send an approved template to all customers, all users, or a pasted\/CSV list \u2014 immediately or scheduled<\/li>\n<li>Queue-based sending with automatic retries, do-not-send list respected, full logs<\/li>\n<\/ul>\n\n<h4>Consent, admin alerts and data<\/h4>\n\n<ul>\n<li>Opt-in consent checkbox at checkout and a do-not-send list for marketing messages<\/li>\n<li>Up to 10 admin numbers for alerts; admin SMS\/WhatsApp alert on form submissions; low-balance email alert<\/li>\n<li>Wallet balance and SMS count in the dashboard header, 30-day stats<\/li>\n<li>Message logs with masked phone numbers, one-click retry and CSV export<\/li>\n<li>Phone numbers and API key encrypted at rest (AES-256-GCM), automatic data retention purge, WordPress privacy export\/erase support<\/li>\n<li>WooCommerce HPOS compatible; instant delivery via a real cron URL or WP-CLI (<code>wp fast2sms worker<\/code>), with WP-Cron as the fallback<\/li>\n<\/ul>\n\n<p>Works without WooCommerce too \u2014 OTP login, form OTP, form alerts and campaigns run on plain WordPress. WooCommerce-only features light up automatically when WooCommerce is installed.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>A free account at <a href=\"https:\/\/www.fast2sms.com\">fast2sms.com<\/a> with your own API key<\/li>\n<li>For SMS: approved DLT templates in your Fast2SMS panel<\/li>\n<li>For WhatsApp: approved WhatsApp templates in your Fast2SMS panel<\/li>\n<li>For OTP: an OTP ID created in your Fast2SMS panel (Smart OTP section)<\/li>\n<li>Target market: India (10-digit Indian mobile numbers)<\/li>\n<\/ul>\n\n<h4>Guides &amp; documentation<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/www.fast2sms.com\/help\/fast2sms-wordpress-plugin-setup-guide\/\">Complete setup guide<\/a> \u2014 every feature, step by step<\/li>\n<li><a href=\"https:\/\/www.fast2sms.com\/help\/free-otp-login-wordpress\/\">OTP login for WordPress<\/a> and <a href=\"https:\/\/www.fast2sms.com\/help\/woocommerce-otp-login\/\">for WooCommerce<\/a><\/li>\n<li><a href=\"https:\/\/www.fast2sms.com\/help\/woocommerce-sms-whatsapp-order-notifications\/\">SMS &amp; WhatsApp order notifications<\/a> and <a href=\"https:\/\/www.fast2sms.com\/help\/woocommerce-whatsapp-notifications\/\">WhatsApp-only setup<\/a><\/li>\n<li><a href=\"https:\/\/www.fast2sms.com\/help\/whatsapp-otp-wordpress\/\">WhatsApp OTP with SMS fallback<\/a><\/li>\n<li><a href=\"https:\/\/www.fast2sms.com\/help\/dlt-sms-wordpress\/\">DLT registration explained for store owners<\/a><\/li>\n<li><a href=\"https:\/\/www.fast2sms.com\/help\/bulk-sms-wordpress-plugin\/\">Bulk SMS campaigns from WordPress<\/a><\/li>\n<li><a href=\"https:\/\/www.fast2sms.com\/help\/whatsapp-business-api-wordpress\/\">WhatsApp Business API setup<\/a><\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>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 <a href=\"https:\/\/www.fast2sms.com\/privacy-policy\">Fast2SMS privacy policy<\/a> and <a href=\"https:\/\/www.fast2sms.com\/terms-conditions\">terms<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Open the Fast2SMS menu in wp-admin.<\/li>\n<li>Paste your Fast2SMS API key \u2014 it is validated live against your account and stored encrypted.<\/li>\n<li>Enable the automations you want and pick templates fetched from your account.<\/li>\n<li>Recommended: add a real server cron for instant delivery (shown on the Dashboard tab). Without it, WP-Cron is used as a fallback.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20charge%20anything%3F\"><h3>Does this plugin charge anything?<\/h3><\/dt>\n<dd><p>No. You bring your own Fast2SMS API key; message costs are billed by Fast2SMS to your own wallet at your account's rates.<\/p><\/dd>\n<dt id=\"does%20it%20work%20without%20woocommerce%3F\"><h3>Does it work without WooCommerce?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"can%20i%20require%20otp%20verification%20at%20checkout%3F\"><h3>Can I require OTP verification at checkout?<\/h3><\/dt>\n<dd><p>Yes. Turn on Fast2SMS \u2192 OTP &amp; Login \u2192 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 \u2014 before any payment gateway is called. You can skip it for logged-in customers and give the box its own title and colors.<\/p><\/dd>\n<dt id=\"my%20courier%20plugin%20adds%20custom%20order%20statuses.%20can%20i%20message%20on%20those%3F\"><h3>My courier plugin adds custom order statuses. Can I message on those?<\/h3><\/dt>\n<dd><p>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 \u2014 just pick a template for it.<\/p><\/dd>\n<dt id=\"can%20i%20use%20my%20own%20order%20fields%20as%20message%20variables%3F\"><h3>Can I use my own order fields as message variables?<\/h3><\/dt>\n<dd><p>Yes. Add the order meta keys (for example a tracking number saved by your shipping plugin) under Settings \u2192 Custom variables and they become <code>{variables}<\/code> in every order automation.<\/p><\/dd>\n<dt id=\"which%20form%20plugins%20are%20supported%3F\"><h3>Which form plugins are supported?<\/h3><\/dt>\n<dd><p>Contact Form 7, WPForms and Elementor Pro Forms \u2014 both for OTP verification and admin submission alerts.<\/p><\/dd>\n<dt id=\"how%20is%20customer%20data%20protected%3F\"><h3>How is customer data protected?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"why%20do%20my%20messages%20need%20templates%3F\"><h3>Why do my messages need templates?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"which%20countries%20are%20supported%3F\"><h3>Which countries are supported?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"do%20i%20need%20dlt%20registration%3F\"><h3>Do I need DLT registration?<\/h3><\/dt>\n<dd><p>For SMS, yes \u2014 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. <a href=\"https:\/\/www.fast2sms.com\/help\/dlt-sms-wordpress\/\">DLT explained in simple English<\/a>.<\/p><\/dd>\n<dt id=\"can%20otps%20be%20delivered%20on%20whatsapp%3F\"><h3>Can OTPs be delivered on WhatsApp?<\/h3><\/dt>\n<dd><p>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 \u2014 no code changes.<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20an%20api%20key%3F\"><h3>Where do I get an API key?<\/h3><\/dt>\n<dd><p>Create a free account at <a href=\"https:\/\/www.fast2sms.com\">fast2sms.com<\/a> and copy the key from the Dev API section. Paste it into the plugin dashboard and it is validated live.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.13.0<\/h4>\n\n<ul>\n<li>Checkout OTP verification: require customers to verify their billing mobile number with OTP on the classic WooCommerce checkout before the order is placed \u2014 works with every payment gateway. Enable it under OTP &amp; Login \u2192 Checkout OTP verification.<\/li>\n<li>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).<\/li>\n<li>Checkout box customization: its own title, theme (light\/dark), accent color and corner style \u2014 or match the login form appearance, with a live preview.<\/li>\n<li>No changes to existing automations, OTP login\/signup, forms or COD verification; the feature is off by default.<\/li>\n<\/ul>\n\n<h4>1.12.0<\/h4>\n\n<ul>\n<li>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 (\ud83d\udd18 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.<\/li>\n<li>Works in order automations, campaigns and test sends. Existing rules and button-less templates are unaffected.<\/li>\n<\/ul>\n\n<h4>1.11.1<\/h4>\n\n<ul>\n<li>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.<\/li>\n<li>Clear \"saves automatically\" notice at the top of the Settings and OTP tabs.<\/li>\n<\/ul>\n\n<h4>1.11.0<\/h4>\n\n<ul>\n<li>Auto-detected custom order statuses: every status registered by courier\/workflow plugins (In Transit, Out For Delivery, RTO\u2026) now gets its own automation card automatically, each with its own template.<\/li>\n<li>Custom variables: expose any order meta key (tracking IDs, custom checkout fields) as a {variable} in all order automations.<\/li>\n<li>COD to Prepaid: invite COD customers to pay online via {pay_url}, with optional delay \u2014 cancels itself once paid.<\/li>\n<li>Back in stock: customers can subscribe on out-of-stock products and get a message when restocked.<\/li>\n<li>OTP variable builder: build the extra OTP template values from a dropdown \u2014 including the OTP code itself in additional slots \u2014 or static text.<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>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}).<\/li>\n<li>Custom order status automation: list any status slugs from courier\/workflow plugins and message on them.<\/li>\n<li>New variables: {pay_url} on every order event, {refund_amount} on partial refunds.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>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.<\/li>\n<li>New admin options: allow\/disallow number editing, and set the resend countdown (10\u2013300 seconds).<\/li>\n<li>OTP template variables: if your Smart OTP template has extra {#var#} placeholders, enable the option and set their values \u2014 sent with every OTP including COD verification.<\/li>\n<\/ul>\n\n<h4>1.8.2<\/h4>\n\n<ul>\n<li>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.<\/li>\n<\/ul>\n\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>Fix: OTP sending failed with \"Could not start OTP verification\" in 1.8.0 due to an internal table-name error \u2014 please update immediately if you use OTP login or the OTP test.<\/li>\n<li>The plugin now rebuilds missing database tables automatically and shows administrators the underlying database error when something goes wrong.<\/li>\n<li>OTP &amp; Login tab now saves automatically \u2014 and \"Send test OTP\" uses the OTP ID as you typed it, no save-then-scroll needed.<\/li>\n<li>High-resolution logo and icon inside the plugin dashboard.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>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.<\/li>\n<\/ul>\n\n<h4>1.7.2<\/h4>\n\n<ul>\n<li>Nonce verification is now inline in every admin AJAX handler (visible to static analysis), in addition to the shared guard.<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>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.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Searchable template picker: find templates by message text, ID or sender \u2014 with the current selection highlighted.<\/li>\n<li>Auto-generated invoice PDFs: attach a professional PDF invoice to WhatsApp messages via {invoice_url} \u2014 rendered on the fly, never stored as files.<\/li>\n<li>WhatsApp previews now show your verified business name.<\/li>\n<li>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.<\/li>\n<li>\"Also alert admin\" toggle per automation sends a copy of every message to your admin numbers.<\/li>\n<li>Many new variables: {subtotal} {discount} {tax} {currency} {coupon_code} {shipping_method} {product_name} {order_status_url} {invoice_url} and more.<\/li>\n<li>Logs: hover any row for the raw API response, bulk \"Retry all failed\", CSV export with full numbers (admin-only).<\/li>\n<li>Data &amp; storage panel: see what the plugin stores, clean old data on demand \u2014 plus automatic retention purging every cycle and a hard cap so storage can never fill up.<\/li>\n<li>Admin numbers are now stored encrypted and shown masked; GDPR personal-data eraser support.<\/li>\n<li>Do-not-send list now applies to marketing messages (cart reminders, campaigns, welcome, review requests) while transactional order updates still deliver.<\/li>\n<\/ul>\n\n<h4>1.6.4<\/h4>\n\n<ul>\n<li>All Fast2SMS API calls now identify themselves with an xsource=wordpress parameter, so plugin traffic is distinguishable in the Fast2SMS backend.<\/li>\n<\/ul>\n\n<h4>1.6.3<\/h4>\n\n<ul>\n<li>WordPress.org submission readiness: Plugin Check fixes (file encoding, fully prepared SQL, i18n comment) and plugin renamed to comply with directory naming rules.<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Settings now auto-save \u2014 no more scrolling to a Save button.<\/li>\n<li>Admin numbers are managed as chips (add one at a time, remove with one click), matching the do-not-send list UX.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Opt-out \/ consent management: do-not-send list in Settings (queued messages skip it automatically) + optional \"Send me order updates\" consent checkbox at checkout.<\/li>\n<li>Review request automation: ask for a product review N days after order completion, with {review_url}.<\/li>\n<li>Scheduled campaigns: pick a date &amp; time, the campaign fires then (site timezone).<\/li>\n<li>Multiple admin numbers: comma-separated list \u2014 every admin alert goes to all of them.<\/li>\n<li>Campaign SMS now uses Fast2SMS's multi-request bulk API (\/dev\/custom) \u2014 up to 500 messages per API call, dramatically faster large campaigns.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>OTP setup test: send a real Smart OTP to your own number and verify it, straight from the OTP tab \u2014 and see which channel (SMS or WhatsApp) your OTP ID is configured for at Fast2SMS.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>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.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Cleaner automation editor: SMS and WhatsApp configs are now separated into clearly-labelled channel cards.<\/li>\n<li>Fixed the WhatsApp preview header being cut by the phone notch.<\/li>\n<li>More variables for WordPress events: {email}, {message}, {username}, {first_name}, {site_url}, {date}, {time} on welcome\/form events; {site_url} and {date} in campaigns.<\/li>\n<li>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).<\/li>\n<li>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).<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Send test: fire a real message with sample values from every automation and campaign, straight to your own number, before going live.<\/li>\n<li>Setup checklist on the dashboard (click an item to jump to the right tab).<\/li>\n<li>30-day message stats (sent \/ failed \/ in queue) on the dashboard.<\/li>\n<li>Logs: one-click retry for failed messages + CSV export.<\/li>\n<li>Clear \"Indian mobile numbers only\" notes across the UI.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Live phone-style previews: see the exact SMS and WhatsApp message (with mapped variables highlighted) beside every automation and campaign while you configure it.<\/li>\n<li>OTP login form customizer: light\/dark theme, accent color, corner style and custom title \u2014 with live preview.<\/li>\n<li>UI polish across the admin.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New automations: order processing, on hold, failed, note added to order, new-order admin alert, low-stock and out-of-stock admin alerts.<\/li>\n<li>WhatsApp media headers: attach an image\/PDF (e.g. order invoice) via media URL + document filename, with per-message variables.<\/li>\n<li>Many more template variables: first\/last name, order status, payment method, order date, item count, first item, city, pincode, order URL.<\/li>\n<li>OTP: SIM-swap protection \u2014 block OTP-only login for administrator accounts (on by default).<\/li>\n<li>New minimal white\/grey UI with blue accents and the Fast2SMS logo.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Free OTP login &amp; checkout OTP, WhatsApp\/SMS order alerts, abandoned cart recovery, COD verification and bulk campaigns for WordPress &amp; WooCommerce.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/338724","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=338724"}],"author":[{"embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fast2smsdev"}],"wp:attachment":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=338724"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=338724"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=338724"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=338724"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=338724"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=338724"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}