CodeAtoZ – Cloud Messaging for WooCommerce

Description

CodeAtoZ – Cloud Messaging for WooCommerce connects your WooCommerce store directly to Meta’s WhatsApp Business Cloud API. Send order confirmations, processing updates, shipping notifications, and delivery alerts to your customers on the world’s most popular messaging app — without paying any third-party BSP middleman.

You pay Meta’s per-conversation pricing directly. No markup, no monthly platform fees, no vendor lock-in. Meta gives every business 1,000 free service conversations per month, which covers most small stores entirely.

Why use WhatsApp for order notifications?

  • 98% open rates — compared to ~20% for email. Customers read WhatsApp messages within minutes.
  • No SMS costs — WhatsApp Cloud API is dramatically cheaper than SMS gateways in most countries.
  • Two-way conversation — customers can reply with questions, change requests, or feedback.
  • Mobile-first — works perfectly on every smartphone, no app installation needed by the customer.
  • Trusted channel — customers already use WhatsApp daily, no learning curve.

Features (Free version)

Order Status Notifications

Send a WhatsApp message automatically on every WooCommerce order status change:

  • Order confirmed (pending payment)
  • Order processing (payment received)
  • Order on-hold (manual review)
  • Order shipped (with tracking link)
  • Order delivered
  • Order completed
  • Order cancelled
  • Order refunded
  • Order failed

Each event has its own message template with full variable substitution — order number, customer name, total amount, shipping address, tracking URL, and more.

GDPR-Compliant Opt-In

  • Customizable consent checkbox at checkout (classic and Blocks Checkout supported)
  • Configure the checkbox wording, default state, and required/optional behavior
  • Records opt-in consent with timestamp and IP address (legal compliance)
  • Integrates with the WordPress Personal Data Exporter and Eraser tools
  • Compatible with Cookie/GDPR consent banner plugins

STOP-Keyword Auto-Unsubscribe

  • Customers can reply “STOP”, “UNSUBSCRIBE”, “QUIT” or “END” to any message to opt out
  • Automatic recognition — no manual subscriber management needed
  • Confirmation message sent back to the customer
  • Opt-out preserved across orders — you never need to remember it manually
  • Easy admin re-opt-in tool for accidental unsubscribes

Staff Notifications (Single Phone)

  • Alert your phone via WhatsApp the moment a new order arrives
  • Alert on failed payments and refund requests
  • Configurable per-event triggers
  • (Multi-staff notification lists are available in the Pro version)

Click-to-Chat & Share Buttons

  • WhatsApp “Chat with us” button for product pages and shop sidebar
  • WhatsApp share button so customers can share products with friends
  • Configurable phone number, pre-filled message, and button position

Built-in Message Log

  • Every outgoing and incoming WhatsApp message is logged with status (Sent Delivered Read Failed)
  • Click any log entry to see the full payload, error code, and Meta message ID
  • Filter by status, phone, date range, or specific order
  • Configurable retention (default 90 days) to keep the database lean

In-Plugin Setup Guide

  • 6-step walkthrough takes new merchants from “just installed” to “first message sent”
  • Click-to-copy webhook URL and verify token
  • Live FAQ covering Cloud API pricing tiers, template rejection causes, message delivery troubleshooting
  • Accessible both as a top-level menu item and inside Settings

Technical Excellence

  • Direct Meta Graph API integration (no proxy, no third-party server in the middle)
  • Encrypted access-token storage (OpenSSL AES-256-CBC)
  • HMAC-verified webhook for delivery and read receipts
  • Action Scheduler queue with WP-Cron fallback (reliable delivery even under load)
  • HPOS (High-Performance Order Storage) compatible
  • Blocks Checkout compatible
  • Translation-ready with .pot file and 9 sample .po translations included
  • Modern WordPress admin UI with charts (Chart.js bundled locally — no CDN loads)
  • All code escapes output, sanitizes input, verifies nonces, checks capabilities

Who is this for?

  • Online stores that want to stop losing customers to email-overload — WhatsApp gets read, email doesn’t.
  • Stores in WhatsApp-heavy markets (India, Brazil, Indonesia, Spain, Mexico, Italy, Argentina, Saudi Arabia, etc.) where customers prefer WhatsApp over SMS.
  • Direct-to-consumer (DTC) brands that want a personal, mobile-first customer experience.
  • B2B / wholesale stores that need fast confirmation and shipping updates to business buyers.
  • High-ticket stores where lost orders are expensive and proactive communication directly affects conversion.
  • Cash-on-Delivery (COD) markets where confirmation messaging dramatically reduces fake orders (basic version free; OTP verification in Pro).

Pro version

A Pro add-on plugin is available on codeatoz.com that unlocks advanced commerce automation modules:

  • Abandoned Cart Recovery — automatic follow-up sequences for incomplete checkouts (configurable delay + max messages + multi-step cadence)
  • COD Verification with OTP — verify Cash-on-Delivery orders before fulfillment (massive fake-order reduction)
  • Back-in-Stock Alerts — “Notify Me” widget on out-of-stock products, auto-message when restocked
  • Review Collector — request product reviews a configurable number of days after delivery
  • Payment Reminders — automated reminders for pending bank-transfer / unpaid orders, with auto-cancel option
  • Address Confirmation — interactive button confirmation for high-value or risky orders
  • WhatsApp Returns Flow — full conversational return request, photo upload, refund/exchange selection
  • Catalog Sync — push your WooCommerce product catalog to WhatsApp Business Catalog
  • WhatsApp OTP Login — passwordless customer login with phone + WhatsApp one-time code
  • Unlimited staff phones (free is limited to 1)
  • Multi-language template auto-detection for non-English markets
  • Quiet Hours engine — respect customer timezones, avoid 3 AM notifications
  • Analytics dashboard — charts, per-module breakdown, delivery rates, revenue recovered
  • Inline-send architecture — sub-second message delivery using fastcgi_finish_request
  • Premium template library + priority email support

The Pro version is a separate, standalone plugin — not a paid feature unlock of this free plugin. If you only ever use the free version, every free feature listed above will keep working forever with no nag screens or time limits.

External Services

This plugin connects to and uses the following external services to deliver its core functionality. By installing and using this plugin you acknowledge that data is transmitted to these services.

WhatsApp Business Cloud API (Meta Platforms, Inc.)

  • What it is used for: Sending WhatsApp messages (order notifications, opt-in confirmations, transactional alerts), receiving delivery and read receipts via webhook, fetching the merchant’s approved message-template list.
  • What data is sent: Recipient phone number (only for customers who have opted in), message template name, template variables (e.g. customer first name, order ID, order total, shipment tracking URL), and the merchant’s access token for authentication.
  • When data is sent: Whenever a WooCommerce order changes status, when a customer opts in or out, when the merchant clicks “Refresh templates”, and when the merchant triggers a test message.
  • Service endpoint: https://graph.facebook.com (Meta Graph API, v21.0)
  • Provider: Meta Platforms, Inc.
  • Terms of Service: https://developers.facebook.com/terms
  • Privacy Policy: https://www.whatsapp.com/legal/business-policy

This plugin does not connect to any other external service. All other functionality (message queue, log, settings, subscriber list, dashboard) runs entirely on your own WordPress install. No telemetry, no analytics, no tracking pixels.

Privacy & Data Handling

This plugin stores the following customer data locally in your WordPress database:

  • Phone numbers — in the subscribers table and the message log. Only for customers who explicitly opt in at checkout.
  • Message content and delivery status — in the message log table. Retained for the duration set in Settings Advanced Log Retention (default 90 days, configurable from 7–365 days).
  • Meta API credentials — access token, phone number ID, business account ID. Stored encrypted (OpenSSL AES-256-CBC) in the wp_options table.
  • Opt-in consent records — timestamp + IP address of the consent event, stored alongside customer phone number for legal compliance.

Data export & erasure

Customers can request their personal data via the standard WordPress Personal Data Export / Erasure tools (Tools Export Personal Data / Erase Personal Data). This plugin registers the appropriate WordPress GDPR hooks to include WhatsApp messaging data in exports and to erase it on request.

Customers can also send the keyword “STOP”, “UNSUBSCRIBE”, “QUIT” or “END” to your WhatsApp Business number to opt out immediately — no email or admin intervention needed.

Data sent to Meta

Meta receives the phone number and message content of every outbound notification. Meta’s WhatsApp Business privacy policy governs how they handle that data (link above). The plugin does not send any other customer data (name, address, email, purchase history) to Meta unless you explicitly include those values in your message template variables.

Screenshots

  • WhatsApp order notifications on mobile — A real WhatsApp conversation showing the full order journey: confirmed shipped with tracking delivered, plus a customer reply. This is exactly what your customers receive on their phones, powered directly by Meta’s Cloud API.

  • Connection settings — Enter your Meta Phone Number ID, WhatsApp Business Account ID, permanent System User Token, and App Secret. The Webhook URL and Verify Token are auto-generated and copy-to-clipboard ready. A live “Test Connection” button confirms your setup works before going live.

  • Message templates — Browse all your Meta-approved WhatsApp templates fetched live from your account. Utility and Marketing categories shown with status indicators. Use “Refresh from Meta” to sync after creating new templates in the Meta Business portal.

  • Message log — Full delivery history for every outgoing and incoming message. Shows queue status (Action Scheduler), connection status, pending count, and per-message details including template name, recipient phone, direction, and delivery status.

Installation

Quick setup

  1. Upload the plugin ZIP via Plugins Add New Upload Plugin, or unzip it into wp-content/plugins/
  2. Activate the plugin from the Plugins screen
  3. Go to WhatsApp Commerce Setup Guide for a step-by-step walkthrough of Meta’s API setup
  4. Or jump straight to WhatsApp Commerce Settings Connection if you already have your Meta credentials

Detailed setup

You’ll need a Meta Business account, a Meta Developer App with WhatsApp product enabled, and a phone number not currently registered to WhatsApp Personal or Business. The built-in Setup Guide walks you through:

  1. Creating a Meta Business account
  2. Creating a WhatsApp Business App in Meta Developers
  3. Copying credentials (Access Token, Phone Number ID, WhatsApp Business Account ID) into the plugin
  4. Configuring the webhook (Callback URL + Verify Token) so the plugin receives delivery + read receipts
  5. Approving your message templates with Meta (utility templates auto-approve in minutes)
  6. Generating a permanent System User token for production use

Setup typically takes 15–30 minutes. Once connected, send a test message from the Connection tab to confirm everything works, then start enabling order status notifications.

Requirements

  • WordPress 6.2 or higher
  • PHP 8.0 or higher
  • WooCommerce 8.0 or higher
  • A Meta Business account (free)
  • A phone number for your WhatsApp Business presence

FAQ

How much does WhatsApp Cloud API cost?

Meta gives every business 1,000 free service conversations per month per WhatsApp Business number. Beyond that, conversations are priced per-country — typically $0.005 to $0.10 per conversation (a single conversation = 24 hours of back-and-forth messaging with one customer). You pay Meta directly. This plugin charges zero markup on message costs.

For a small WooCommerce store doing 200 orders/month, you’ll likely stay entirely within the free tier. For a larger store, your monthly Cloud API bill is usually a fraction of equivalent SMS costs.

Can I use my existing WhatsApp number?

Only if you first delete WhatsApp Personal or WhatsApp Business from the device. A phone number can only be registered to ONE of: WhatsApp Personal, WhatsApp Business app, or WhatsApp Cloud API. This plugin uses Cloud API, so you’ll need to migrate the number off WhatsApp Personal/Business first.

If you want to keep your personal WhatsApp running, get a separate business number (a VOIP number, a second SIM, or a landline that can receive SMS or voice for verification will work).

Why are my messages getting “rate limited”?

Brand-new WhatsApp Business numbers start at Tier 1: 250 unique customer conversations per 24 hours. As long as your message quality stays “High” in Meta’s quality assessment, Meta will auto-promote you to:

  • Tier 2: 1,000 conversations/24h
  • Tier 3: 10,000 conversations/24h
  • Tier 4: 100,000 conversations/24h
  • Unlimited

The progression typically takes 2–4 weeks. Send transactional (Utility) templates first — they build trust fastest with Meta’s quality system.

My template was rejected by Meta. What now?

The most common rejection reasons:

  • The template feels promotional but was submitted as “Utility” — change the category to “Marketing” OR rewrite the wording to be transactional
  • The template contains unverified claims (“100% guaranteed!”, “Best price!”)
  • The template has placeholders at the start or end ({{1}} as the first or last token is not allowed)
  • Header or footer text exceeds character limits

Edit the template wording and resubmit. After two rejections of the same template name, use a new name (e.g., order_shipped_v2).

Customer isn’t receiving any messages — how do I debug?

Visit WhatsApp Commerce Message Log and find the most recent message to that customer. The status column tells you exactly what happened:

  • Failed — click the row to see Meta’s error code. Common ones: #131026 (number not on WhatsApp), #132000 (template parameter mismatch), #132001 (template language mismatch).
  • Sent but not Delivered — customer has likely blocked your number, or their phone has been offline for 30+ days.
  • Queued — Action Scheduler hasn’t picked up the message yet. Check your WP-Cron or visit Tools Scheduled Actions.
  • Customer is opted out — check Subscribers tab. They may have replied STOP previously.

Does the plugin work with WooCommerce Blocks Checkout?

Yes. The opt-in checkbox renders on both classic checkout and the new Blocks Checkout. We update it as WooCommerce updates the Blocks API.

Does the plugin work with HPOS (High-Performance Order Storage)?

Yes. HPOS compatibility is declared in the plugin header and tested against the latest WooCommerce versions.

Is the plugin translation-ready?

Yes. The .pot file is included in /languages/, plus sample .po files for German, French, Spanish, Italian, Dutch, Portuguese, Polish, Swedish, and Danish. Translations are loaded on the init hook with priority 5 so other modules can use translated strings safely.

How is my Meta access token stored?

The access token is encrypted using OpenSSL AES-256-CBC before being written to the wp_options table. The encryption key is derived from your WordPress AUTH_KEY constant. The token is decrypted only at the moment of an outbound API request to Meta. If you back up your database and accidentally expose it, the token cannot be used without your WordPress secret keys.

Can I send broadcast / marketing messages?

The free version focuses on transactional notifications (order updates, opt-in confirmations, click-to-chat). For bulk marketing campaigns, segmented broadcasts, or abandoned cart recovery, the Pro version on codeatoz.com adds those features. The free version does not include broadcast functionality.

Where can I get more help?

  • Free version users — community support via the WordPress.org plugin support forum
  • Pro version customers — priority email support at support@codeatoz.com
  • Documentation — visit codeatoz.com for in-depth setup guides and video walkthroughs

Reviews

There are no reviews for this plugin.

Contributors & Developers

“CodeAtoZ – Cloud Messaging for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.3.1

  • Setup Guide promoted to top-level admin menu and Settings tab for discoverability
  • Sidebar upsell now anchored to viewport right edge (position: fixed)
  • Renamed for WordPress.org submission (display name and slug); internal identifiers unchanged so existing settings are preserved across updates
  • readme.txt expanded with full external service disclosure and privacy section

1.3.0

  • WordPress.org plugin review compliance pass
  • Chart.js bundled locally under assets/js/vendor/ (MIT license attribution included)
  • All $_GET / $_POST reads wrapped with wp_unslash() before sanitization
  • All $wpdb queries use prepare() or have appropriate phpcs:ignore documentation
  • Template ternary output wrapped with esc_attr() / wp_kses_post()
  • Inline <script> extracted to enqueued admin-help.js
  • base64_decode calls commented with security justification
  • readme description rewritten to honestly reflect free-version features only

1.2.1

  • Activity feed bug fix — phone column was using wrong DB field
  • Active Templates mini card replaces New Subscribers in free dashboard
  • Friendlier context labels in Recent Activity (“Order update #1234” vs generic “Order”)

1.2.0

  • New Setup Guide tab with 6-step Meta walkthrough
  • Click-to-copy webhook URL and verify token chips
  • 6-question FAQ accordion (pricing, rate limits, template rejection, debugging)

1.1.1

  • Pro-only Settings tabs (Cart Recovery, Quiet Hours) properly filtered in free build
  • Settings save handler refuses Pro-only tabs in free (defense in depth)

1.1.0

  • Plugin version bump for cache busting
  • Settings tab filtering refinements

1.0.0

  • Initial public release