Back to Blog
Integrations

Sendexa for WooCommerce: Order SMS, Abandoned Cart Recovery, and Checkout OTP

Collins VidzroCollins Vidzro2026-08-0610 min read
Sendexa for WooCommerce: Order SMS, Abandoned Cart Recovery, and Checkout OTP

Sendexa for WooCommerce: Order SMS, Abandoned Cart Recovery, and Checkout OTP

A free WordPress plugin that connects your WooCommerce store to Sendexa's SMS, email, and OTP infrastructure — no custom code required


Why We Built This

A huge share of WooCommerce stores in Africa run on plugins that were never designed with local SMS delivery, mobile money checkout habits, or Cash-on-Delivery fraud in mind. Store owners were stitching together a generic transactional-email plugin, a separate SMS notification add-on with unreliable delivery, and no real way to verify a phone number before shipping a COD order to a number that doesn't exist.

Sendexa for WooCommerce closes that gap. It's a single plugin that plugs your store directly into the Sendexa API and handles three things every store owner eventually needs: keeping customers updated by SMS and email as their order moves through fulfillment, recovering abandoned carts automatically, and verifying a shopper's phone number at checkout before an order — especially a COD order — ever goes out.

It's free to install. You only pay Sendexa's normal per-message rates for the SMS, email, and OTP traffic it sends.


What It Does

1. Order Status Notifications (SMS + Email)

Every time a WooCommerce order changes status — pending, processing, completed, or a custom status added by a shipment-tracking plugin — the plugin can fire an SMS, an email, or both. Each status gets its own on/off toggle and its own editable message template, so a "processing" notice can read differently from a "completed" one.

Templates support placeholder tokens that get filled in automatically:

TokenFills in
{customer_name} / {first_name}Customer's name
{order_id} / {order_number}The order reference
{order_total}Order total, formatted
{order_status}Human-readable status
{order_url}Link to the order/tracking page
{store_name} / {store_url}Your store details

2. Abandoned Cart Recovery

The moment a shopper types a phone number or email into the checkout form — logged in or as a guest — the plugin captures it and starts tracking the cart. If the order isn't completed within a configurable window, a WP-Cron job (running every 15 minutes) sweeps for stale carts and sends a recovery SMS and/or email automatically:

"Hi , you left items in your cart at ! Complete your order: "

Carts that convert are automatically excluded, and old abandoned-cart records are purged after a configurable number of days so the database doesn't accumulate stale rows forever.

3. Checkout Phone Verification (OTP)

This is the feature most Ghanaian and Nigerian store owners asked us for directly: a one-time code the shopper must verify before the order is placed. You can scope it to Cash on Delivery orders only — the highest-risk case for fake or mistyped numbers — or require it on every order regardless of payment method. PIN length (4–10 digits) and code expiry (1–1440 minutes) are both configurable, and it works for guest checkout since verification is tied to the WooCommerce session rather than a logged-in account.

4. Delivery Webhooks + Activity Log

Sending a message isn't the same as it arriving. The plugin can register a webhook with Sendexa so that delivered/failed callbacks flow back in real time, and a built-in Logs tab shows every SMS, email, OTP request, and OTP verification — with recipient, linked order, delivery status, and the Sendexa message ID — so you're never guessing whether a customer actually got their notification.


How It's Built (and Why That Matters for Security)

A detail worth calling out for anyone comparing this against other SMS/notification plugins: your Sendexa API credentials never reach the browser. The checkout OTP widget doesn't call Sendexa's API directly from JavaScript — it calls a small REST proxy registered by the plugin itself (under the sendexa/v1 namespace), which then makes the authenticated call to Sendexa server-side. The client-side code never sees your API secret.

A few other things baked in from day one:

  • Webhook signature verification — every delivery callback is verified using an HMAC-SHA256 signature (X-Sendexa-Signature header) against your webhook secret, so nothing can spoof a "delivered" status into your log.
  • OTP rate limiting — the verification endpoint is capped at 3 attempts per phone number per 10 minutes, since every OTP request triggers a real, billed SMS — this stops both abuse and accidental cost spikes.
  • Free connection testing — the settings page's "Test Connection" button checks your API credentials against Sendexa's balance endpoint, which doesn't cost anything to call, so you can validate setup before sending a single real message.
  • Non-destructive deactivation — deactivating the plugin keeps all settings and logs intact; only a full uninstall removes them, and that's a deliberate, separate step.

Setting It Up

Requirements: WordPress 6.0+, PHP 7.4+, WooCommerce 7.0+, and a Sendexa account with API credentials and an approved SMS Sender ID.

  1. Install the plugin — upload the plugin folder to /wp-content/plugins/sendexa-for-woocommerce, or install it via Plugins → Add New → Upload Plugin, then activate it.
  2. Connect your account — go to WooCommerce → Sendexa → General and enter your API Client ID and Client Secret (found in your Sendexa dashboard under Developers → API Keys), your approved SMS Sender ID, and your "From" email details. Hit Test Connection to confirm everything is wired up correctly.
  3. Configure order notifications — under the Order Notifications tab, toggle SMS and/or email for each order status your store uses, and customize the message templates.
  4. Turn on abandoned cart recovery (optional) — set your abandonment threshold and recovery message under the same tab.
  5. Enable checkout OTP (optional) — under Checkout Verification, turn it on, choose whether it applies to Cash on Delivery orders only or all orders, and set your PIN length and expiry.
  6. Watch the Logs tab — every message sent through the plugin shows up here, with delivery status updating automatically once your webhook is receiving callbacks.

The whole setup takes most store owners under fifteen minutes — there's no code to write, and every setting lives inside the normal WordPress admin under WooCommerce → Sendexa.


What It Doesn't Do (Yet)

To set accurate expectations: this first release (v1.0.0) covers SMS, email, and OTP — it does not currently send WhatsApp, voice, or USSD messages, even though those channels are available through the core Sendexa API. If your store needs WhatsApp order confirmations or IVR-based delivery calls today, you'd integrate those directly through the Sendexa API alongside the plugin. WhatsApp support for WooCommerce is a natural next step we're evaluating based on demand.

It's also WooCommerce-specific — there's no bundled integration with Contact Form 7, Gravity Forms, or WordPress comments. If you need SMS/OTP outside of a WooCommerce checkout flow, our SMS API and OTP API security guide cover the general-purpose integration path.


Frequently Asked Questions

Does the plugin cost anything?

The plugin itself is free. Sending SMS, email, and OTP codes through Sendexa is billed by Sendexa according to your account's standard rates — there's no separate plugin license fee.

Where do I get an API Client ID and Secret?

From your Sendexa dashboard, under Developers → API Keys.

Does checkout OTP verification work for guest checkout?

Yes — verification is tied to the WooCommerce session, not to a logged-in customer account, so guest shoppers are covered too.

What happens if I deactivate the plugin?

Your settings and activity log are preserved so you can safely reactivate later. Uninstalling (deleting) the plugin removes settings and log tables permanently — that's a separate, deliberate step from deactivation.

Can I use custom order statuses from a shipping/tracking plugin?

Yes. The Order Notifications tab pulls its list of statuses directly from WooCommerce (wc_get_order_statuses()), so custom statuses registered by other plugins appear automatically with their own toggle.

Is this plugin available on the WordPress.org plugin directory?

Not yet — it's currently distributed as a direct download through Sendexa. Reach out to our team via your Sendexa dashboard if you'd like the installer package.


Getting Started

If you're running a WooCommerce store anywhere Sendexa has SMS coverage — 200+ destinations worldwide, with especially strong local delivery across Ghana, Nigeria, and the rest of Africa — Sendexa for WooCommerce is the fastest way to add reliable order notifications, cart recovery, and checkout verification without writing a line of code. Sign up for a Sendexa account, grab your API keys, and you can have your first order-status SMS going out within the hour.


This post describes Sendexa for WooCommerce v1.0.0, released August 2026. Features and channel support are expected to expand in future releases.

#WooCommerce#WordPress#SMS API#OTP#Abandoned Cart#Ecommerce
Collins Vidzro

Collins Vidzro

Founder & Lead Developer at Sendexa, writing about high-throughput communication APIs, security, and digital inclusion.

Share: