Title: SMSKora &#8211; Smart &amp; Secure SMS OTP Alerts for WordPress
Author: Md Abul Bashar
Published: <strong>June 15, 2026</strong>
Last modified: June 15, 2026

---

Search plugins

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

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

# SMSKora – Smart & Secure SMS OTP Alerts for WordPress

 By [Md Abul Bashar](https://profiles.wordpress.org/hmbashar/)

[Download](https://downloads.wordpress.org/plugin/smskora.1.0.0.zip)

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

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

## Description

SMSKora is a modular SMS platform for WordPress. It lets you send SMS OTP codes 
and SMS notifications through a range of popular SMS gateways, with zero code required
for most use cases. Advanced developers get a clean PHP API, action/filter hooks,
and an extensible provider registry.

#### SMS Providers

SMSKora ships with built-in support for the following SMS gateways:

 * **Custom API** — Connect any HTTP-based SMS gateway using a configurable URL 
   template (GET or POST).
 * **BulkSMSBD** — Bangladeshi gateway with GET/POST support, balance checks, and
   sender ID configuration.
 * **MimSMS** — Bangladeshi gateway with OTP and general SMS support.
 * **SMSNetBD** — Bangladeshi gateway with GET/POST support and balance check.
 * **Twilio** — International gateway. Enter Account SID, Auth Token, and sender
   number.
 * **Vonage (Nexmo)** — International gateway. Enter API Key, API Secret, and brand
   name.

Additional providers can be registered using the `smskora_register_providers` filter
hook.

#### Features

**WordPress Login OTP**
 Add two-factor SMS verification to the default WordPress
login form. After username and password are accepted, an OTP is sent to the user’s
saved phone number. Supports Password + OTP mode. Users without a saved phone number
are allowed to log in normally and are reminded to add a phone number from their
profile page.

 * Configurable OTP mode: Password + OTP, Phone + OTP, or Email/Username + OTP.
 * “Remember verified device” option with configurable expiry (days).
 * Restrict OTP enforcement to specific user roles (e.g. administrator, editor, 
   shop_manager).
 * Resend OTP button with AJAX support.
 * Non-JS fallback form.

**WordPress Registration OTP**
 Verify the phone number entered during WordPress
default registration before the account is created.

 * Customizable phone field label.
 * Optional phone number requirement.
 * Block duplicate phone numbers across accounts.
 * Auto-login after verification option.
 * Configurable user meta key for storing the phone number.

**WooCommerce Order SMS Notifications**
 Send SMS notifications to both the store
admin and customers when WooCommerce order events occur.

 * Admin SMS on new order (configurable admin phone number).
 * Customer SMS on: Processing, Completed, Cancelled, Failed, and Refunded order
   statuses.
 * Each event can be toggled individually.
 * Message templates use dynamic variables (order number, total, customer name, 
   etc.).

**Custom SMS Notification**
 Trigger one-off SMS messages from the admin Tools page
or from your own code.

 * Restrict the Tools sender to administrators only.
 * Configurable default log context.

**Developer API**
 Enable PHP helper functions, action hooks, and filter hooks for
use in themes, plugins, and custom integrations.

 * Global helper functions always available.
 * REST API endpoint placeholder (disabled by default, enable from Features screen).
 * All developer sends are logged with configurable context.

#### Message Templates

Every SMS notification uses a customizable template. Templates support the following
dynamic variables:

 * `{otp}` — The generated OTP code.
 * `{order_id}` — WooCommerce order number.
 * `{order_total}` — Order total with currency.
 * `{customer_name}` — Customer billing first name.
 * `{site_name}` — Your WordPress site name.
 * `{user_name}` — Display name of the user.

#### Developer API

**PHP Helper Functions**

    ```
    smskora_send_sms( $message, $number, $args ) — Send a plain SMS.
    smskora_send_otp( $number, $context, $args ) — Generate and send an OTP.
    smskora_verify_otp( $number, $otp, $context ) — Verify a submitted OTP code.
    smskora_get_option( $key, $default ) — Read a plugin setting.
    ```

**Static Class API**

    ```
    \SMSKora\SMSKora::send_sms( $message, $number, $args )
    \SMSKora\SMSKora::send_otp( $number, $context, $args )
    \SMSKora\SMSKora::verify_otp( $number, $otp, $context )
    ```

**Action Hooks**

    ```
    smskora_before_send_sms — Fires before an SMS is dispatched.
    smskora_after_send_sms — Fires after an SMS is dispatched.
    smskora_otp_sent — Fires after an OTP is sent successfully.
    smskora_otp_verified — Fires after an OTP is verified successfully.
    smskora_feature_registered — Fires when a feature is registered.
    ```

**Filter Hooks**

    ```
    smskora_register_providers — Register custom SMS provider classes.
    smskora_sms_message — Filter the SMS message text before sending.
    smskora_otp_length — Filter the OTP code length.
    smskora_otp_expiry — Filter the OTP expiry time in minutes.
    ```

#### OTP Security

 * OTP codes are hashed with `password_hash()` before being stored.
 * Codes are single-use and expire after a configurable time window.
 * Attempt limits are enforced to prevent brute-force guessing.
 * Expired OTPs are automatically cleaned up via WP-Cron.

#### Privacy & Data

SMSKora stores SMS log records (recipient, message status, provider, context) and
OTP records (hashed OTP, phone, expiry) in custom database tables. No data is sent
to third-party servers by this plugin. Data is sent only to the SMS gateway you 
configure. All stored data is deleted when the “Delete Data on Uninstall” setting
is enabled.

### External services

SMSKora connects to external SMS gateway APIs only when a site administrator configures
an SMS provider and the plugin sends an SMS message, OTP message, order notification,
login verification message, registration verification message, or balance-check 
request.

The plugin does not send SMS data to servers controlled by the SMSKora plugin author.
SMS data is sent only to the SMS gateway provider selected and configured by the
site administrator.

For configured providers, the following data may be sent to the selected provider:

 * Recipient phone number.
 * SMS message body.
 * Sender ID or sender number, if configured.
 * API key, access token, username, password, or other gateway credentials required
   by the provider.
 * Request metadata required by WordPress and the remote API, such as the site server
   IP address and HTTP request headers.
 * For balance-check requests, the plugin sends the configured API credentials to
   the selected provider to retrieve the account balance.

No external SMS gateway request is made unless the administrator configures a provider
and a plugin feature triggers an SMS send or balance check.

#### BulkSMSBD

This plugin can connect to the BulkSMSBD SMS gateway to send SMS messages and check
account balance.

API domains used by this plugin:

 * http://bulksmsbd.net/api/smsapi
 * http://bulksmsbd.net/api/getBalanceApi

Data sent:

 * Recipient phone number and SMS message body when sending SMS.
 * API key, sender ID, and other configured gateway credentials required by BulkSMSBD.
 * API credentials when checking account balance.

Service website: https://bulksmsbd.com/
 Terms of Service: https://bulksmsbd.com/
terms-and-conditions.php Privacy Policy: Not publicly listed by the provider at 
the time of writing. Users should contact BulkSMSBD through https://bulksmsbd.com/
contact for privacy information before enabling this provider.

#### MimSMS

This plugin can connect to the MimSMS SMS gateway to send SMS messages and check
account balance.

API domains used by this plugin:

 * https://api.mimsms.com/api/SmsSending/Send
 * https://api.mimsms.com/api/SmsSending/SMS
 * https://api.mimsms.com/api/SmsSending/balanceCheck

Data sent:

 * Recipient phone number and SMS message body when sending SMS.
 * API key, sender ID, username, password, or other configured gateway credentials
   required by MimSMS.
 * API credentials when checking account balance.

Service website: https://mimsms.com/
 Terms of Service: https://www.mimsms.com/terms-
of-service Privacy Policy: https://www.mimsms.com/privacy-policy

#### SMSNet BD / sms.bd

This plugin can connect to the SMSNet BD / sms.bd SMS gateway to send SMS messages
and check account balance.

API domains used by this plugin:

 * https://api.sms.net.bd/sendsms
 * https://api.sms.net.bd/user/balance/

Data sent:

 * Recipient phone number and SMS message body when sending SMS.
 * API key, sender ID, and other configured gateway credentials required by SMSNet
   BD / sms.bd.
 * API credentials when checking account balance.

Service website: https://sms.bd/
 Terms of Service: https://sms.bd/Terms_Condition/
Privacy Policy: Not publicly listed by the provider at the time of writing. Users
should contact SMSNet BD / sms.bd through https://sms.bd/Contact/ for privacy information
before enabling this provider.

#### Custom API provider

This plugin includes a Custom API provider that allows the site administrator to
configure their own SMS gateway endpoint.

External service used:

 * The custom endpoint URL entered by the site administrator in the plugin settings.

Data sent:

 * Recipient phone number and SMS message body when sending SMS.
 * Any custom API credentials, headers, parameters, sender ID, or authentication
   values configured by the administrator.
 * The destination URL and provider are fully controlled by the site administrator.

Because the Custom API provider can connect to any administrator-configured endpoint,
site administrators are responsible for reviewing that provider’s terms of service
and privacy policy before enabling it.

#### Twilio

This plugin may include Twilio as an SMS provider option. If configured by the site
administrator, it can connect to Twilio to send SMS messages.

Data sent:

 * Recipient phone number and SMS message body when sending SMS.
 * Twilio Account SID, Auth Token, sender number, and other configured Twilio credentials.

Service website: https://www.twilio.com/
 Terms of Service: https://www.twilio.com/
en-us/legal/tos Privacy Policy: https://www.twilio.com/en-us/legal/privacy

#### Vonage / Nexmo

This plugin may include Vonage as an SMS provider option. If configured by the site
administrator, it can connect to Vonage to send SMS messages.

Data sent:

 * Recipient phone number and SMS message body when sending SMS.
 * Vonage API key, API secret, sender number/name, and other configured Vonage credentials.

Service website: https://www.vonage.com/
 Terms of Service: https://www.vonage.com/
legal/ Privacy Policy: https://www.vonage.com/legal/privacy-policy/

## Screenshots

[⌊Dashboard — live provider status, SMS statistics, and quick setup checklist.⌉⌊
Dashboard — live provider status, SMS statistics, and quick setup checklist.⌉[

Dashboard — live provider status, SMS statistics, and quick setup checklist.

[⌊Provider settings — choose your gateway and enter credentials.⌉⌊Provider settings—
choose your gateway and enter credentials.⌉[

Provider settings — choose your gateway and enter credentials.

[⌊Provider Settings Fields⌉⌊Provider Settings Fields⌉[

Provider Settings Fields

[⌊Features — toggle Login OTP, Registration OTP, WooCommerce, Custom Notification,
and Developer API.⌉⌊Features — toggle Login OTP, Registration OTP, WooCommerce, 
Custom Notification, and Developer API.⌉[

Features — toggle Login OTP, Registration OTP, WooCommerce, Custom Notification,
and Developer API.

[⌊Features — toggle Login OTP, Registration OTP, WooCommerce, Custom Notification,
and Developer API.⌉⌊Features — toggle Login OTP, Registration OTP, WooCommerce, 
Custom Notification, and Developer API.⌉[

Features — toggle Login OTP, Registration OTP, WooCommerce, Custom Notification,
and Developer API.

[⌊Message Templates — edit message content for every SMS event.⌉⌊Message Templates—
edit message content for every SMS event.⌉[

Message Templates — edit message content for every SMS event.

[⌊Message Templates — edit message content for every SMS event.⌉⌊Message Templates—
edit message content for every SMS event.⌉[

Message Templates — edit message content for every SMS event.

[⌊Message Templates — edit message content for every SMS event.⌉⌊Message Templates—
edit message content for every SMS event.⌉[

Message Templates — edit message content for every SMS event.

[⌊Message Templates — edit message content for every SMS event.⌉⌊Message Templates—
edit message content for every SMS event.⌉[

Message Templates — edit message content for every SMS event.

[⌊Message Templates — edit message content for every SMS event.⌉⌊Message Templates—
edit message content for every SMS event.⌉[

Message Templates — edit message content for every SMS event.

[⌊Message Templates — edit message content for every SMS event.⌉⌊Message Templates—
edit message content for every SMS event.⌉[

Message Templates — edit message content for every SMS event.

[⌊Logs — searchable, filterable delivery log with status, provider, and context.⌉⌊
Logs — searchable, filterable delivery log with status, provider, and context.⌉[

Logs — searchable, filterable delivery log with status, provider, and context.

[⌊Tools — send a test SMS or check provider balance from the admin.⌉⌊Tools — send
a test SMS or check provider balance from the admin.⌉[

Tools — send a test SMS or check provider balance from the admin.

[⌊Settings⌉⌊Settings⌉[

Settings

## Installation

 1. Upload the `smskora` folder to `/wp-content/plugins/` or install the ZIP from **
    Plugins > Add New**.
 2. Activate SMSKora.
 3. Go to **SMSKora > Providers** and choose your SMS gateway. Enter your credentials
    and click **Test SMS** to verify the connection.
 4. Go to **SMSKora > Features** and enable the modules you need (Login OTP, Registration
    OTP, WooCommerce Notifications, etc.).
 5. Go to **SMSKora > Templates** and customize the message text for each event.
 6. Send a test SMS any time from **SMSKora > Tools**.

## FAQ

### Does SMSKora include SMS provider API keys?

No. You must supply your own credentials (API key, username/password, or auth token)
from your chosen SMS provider account.

### Which SMS providers are supported out of the box?

Custom API, BulkSMSBD, MimSMS, SMSNetBD, Twilio, and Vonage. More can be added via
the `smskora_register_providers` filter.

### Can I add my own custom SMS provider?

Yes. Implement the `SMSKora\Providers\ProviderInterface` and register your class
using the `smskora_register_providers` filter hook.

### How does Login OTP work?

After a user enters a valid username and password, SMSKora checks whether their 
account has a saved phone number. If it does, an OTP is sent to that number and 
they must enter it before they are logged in. Users without a saved phone number
bypass OTP and are shown a reminder to add one.

### Does it work with WooCommerce?

Yes. Enable the WooCommerce Order Notifications feature to send SMS on new orders,
processing, completed, cancelled, failed, and refunded status events.

### Where do I find the phone number field for user profiles?

SMSKora adds a **Phone Number** field to the WordPress user profile page. Users 
can add or update their number there. Administrators can also edit any user’s number
from the Edit User screen.

### Are OTP codes stored securely?

Yes. All OTP codes are hashed using `password_hash()` before being saved. The plain
code is never stored.

### Does the plugin delete my data on uninstall?

Only when the **Delete Data on Uninstall** option is enabled under SMSKora > Settings.
When enabled, uninstalling the plugin will remove all plugin options and drop the
custom database tables.

### Can I use SMSKora from PHP code in my theme or another plugin?

Yes. Use `smskora_send_sms()`, `smskora_send_otp()`, and `smskora_verify_otp()` 
helper functions, or call `\SMSKora\SMSKora::send_sms()` directly.

### Does SMSKora collect any data?

SMSKora does not collect or transmit data to any servers controlled by the plugin
author. Your SMS data is sent only to the gateway provider you configure.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“SMSKora – Smart & Secure SMS OTP Alerts for WordPress” is open source software.
The following people have contributed to this plugin.

Contributors

 *   [ Md Abul Bashar ](https://profiles.wordpress.org/hmbashar/)

[Translate “SMSKora – Smart & Secure SMS OTP Alerts for WordPress” into your language.](https://translate.wordpress.org/projects/wp-plugins/smskora)

### Interested in development?

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

## Changelog

#### 1.0.0

 * Initial release.
 * Custom API, BulkSMSBD, MimSMS, SMSNetBD, Twilio, Vonage providers.
 * WordPress Login OTP with non-JS fallback and AJAX resend.
 * WordPress Registration OTP with duplicate phone blocking.
 * WooCommerce Order SMS Notifications (6 order events).
 * Custom SMS Notification feature with admin Tools sender.
 * Developer API feature with PHP helper functions and hooks.
 * Message template system with dynamic variables.
 * SMS delivery log with filtering and one-click clear.
 * OTP log with hashed storage and automatic expiry cleanup.
 * Provider connection status indicator on the dashboard.

## Meta

 *  Version **1.0.0**
 *  Last updated **5 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [login otp](https://wordpress.org/plugins/tags/login-otp/)[otp](https://wordpress.org/plugins/tags/otp/)
   [sms](https://wordpress.org/plugins/tags/sms/)[sms notifications](https://wordpress.org/plugins/tags/sms-notifications/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/smskora/advanced/)

## Ratings

No reviews have been submitted yet.

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

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

## Contributors

 *   [ Md Abul Bashar ](https://profiles.wordpress.org/hmbashar/)

## Support

Got something to say? Need help?

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