How much does WhatsApp Cloud API cost?
Meta bills per message (it moved away from the old per-conversation model on 1 July 2025). Rates depend on the message category and the recipient’s country:
- Utility — order confirmations, shipping updates, delivery notices. The cheapest paid category, with volume discounts. This is what the plugin’s order notifications use.
- Authentication — one-time codes. Also discounted by volume.
- Marketing — promotional messages. The most expensive category. The free version does not send these.
- Service — your replies inside the 24-hour customer service window. The first 1,000 service messages per business phone number each calendar month are free , then they are billed per message.
Note that since 1 October 2026 , service messages and utility templates sent inside the 24-hour service window are chargeable; previously they were free. The 72-hour Free Entry Point window remains free.
You pay Meta directly and this plugin charges zero markup . Use Settings → Usage & Costs (new in 1.5.0) to see your own monthly volume by category.
For most small stores the bill is a fraction of equivalent SMS costs. Exact per-country rates are published by Meta and change periodically, so we deliberately do not reproduce them here.
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 on Meta’s lowest messaging tier — typically 250 unique customers per 24 hours . As long as your quality rating stays “High” in Meta’s assessment, Meta automatically promotes you through progressively higher tiers (1,000, then 10,000, then 100,000, then unlimited).
The progression usually takes 2–4 weeks of healthy sending. Send transactional (Utility) templates first — they build trust fastest with Meta’s quality system, because customers expect them and rarely block or report them.
Meta adjusts these tier thresholds from time to time; your current limit and quality rating are shown in the Meta Business Manager for your phone number.
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 ).
How do I use the template variable mapper?
Go to Settings → Notifications . For each order event, pick the Meta-approved template you want from the dropdown, then click “Map template variables” . The plugin reads that template’s structure from Meta and shows one dropdown per {{1}} , {{2}} placeholder — choose which order value belongs in each, and check the live preview underneath.
You only need to do this once per template. Templates you leave unmapped keep behaving exactly as they did before 1.5.0, where the plugin guessed the variable order from a fixed priority list.
If the dropdown is empty, connect your Meta credentials first, then use Refresh from Meta on the Templates screen.
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?
Documentation — built into the plugin. Go to WhatsApp Commerce → Setup Guide for the full 6-step Meta walkthrough, click-to-copy webhook details, and a troubleshooting FAQ. Every settings tab also has inline help text. Free version users — community support via the WordPress.org plugin support forum Pro version customers — priority email support at support@codeatoz.com