Meta Cloud API • Fonnte • WooCommerce

WooCommerce WhatsApp Notifier – Documentation

Send WhatsApp notifications to customers and admins on WooCommerce order events. Supports Meta Cloud API and Fonnte, opt-in on checkout, reminder scheduling, and customizable templates.

Features

  • Customer messages on: New Order, Processing, Completed, Failed
  • Admin notification for new orders
  • Pending payment reminders (hours & max attempts)
  • Message templates with placeholders
  • Checkout opt-in checkbox (show/hide)
  • Control for zero-total orders & opt-in requirement
  • Default country code for phone normalization
  • Translation-ready (languages/wwn.pot)

Installation

  1. Go to Plugins → Add New → Upload Plugin.
  2. Upload the ZIP (e.g. woocommerce-whatsapp-notifier-1.2.3g.zip), then activate.
  3. Open WA Notifier from the WordPress sidebar.

Settings – General

  • Enable plugin – Master on/off.
  • GatewayCloud API or Fonnte.
  • Access token – Token from the selected gateway.
  • Sender (optional) – For Cloud API sender ID.
  • Default country code – e.g. 62 (used to normalize 0812… → 62812…).
  • Show checkout opt-in at checkout – Show permission checkbox on checkout.
  • Send for zero-total orders – If enabled, send messages even when order total is 0.
  • Require checkout opt-in – If enabled, customer must tick the opt-in checkbox to receive messages.

Settings – Gateways

Meta WhatsApp Cloud API

  • Provide Access Token and (optional) Sender.
  • Ensure your phone number is registered and approved in Meta Cloud settings.

Fonnte

  • Provide API Token.
  • Messages are sent via POST https://api.fonnte.com/send.

Message Templates

Templates support placeholders (see table below). Write concise, user-friendly messages. Example:

Hi {first_name}, thank you! Your order #{order_id} with total {total} has been received.
Status: {status}. Details: {order_url}

Send on Events

  • On New Order – triggers on thank-you page after checkout.
  • Status: Processing / Completed / Failed – triggers on status change.
  • Admin New Order – sends to admin number.
Note: If your flow bypasses checkout and sets orders directly to Completed, rely on the Status: Completed event and ensure Send for zero-total orders is enabled.

Pending Payment Reminders

  • Enable reminders
  • Hours after order (pending) – e.g. 3
  • Max attempts per order – e.g. 2

Test Send

Enter a phone number and click Send Test. The plugin will send a simple message: "Test send from WooCommerce WhatsApp Notifier."

This does not use order templates; it only validates that the gateway works.

Placeholders

PlaceholderDescription
{order_id}WooCommerce order ID
{first_name}Billing first name
{last_name}Billing last name
{total}Order total (formatted)
{status}Order status (e.g. pending, processing, completed)
{order_url}Customer order details URL
{pay_url}Payment page URL for the order
{admin_order_url}Admin order edit link (for admin notifications)

How it Works

  1. Customer places an order → selected events trigger according to your toggles.
  2. Plugin renders the message using the corresponding template and placeholders.
  3. Message is sent to the billing phone via the chosen gateway.
Tip: For testing COD or zero-total orders, disable Require checkout opt-in so messages still send even if the customer did not tick the checkbox.

FAQ

Does the Test Send use order templates?

No, Test Send uses a fixed message to verify gateway connectivity.

Why didn’t zero-total orders send a message?

Ensure Send for zero-total orders is enabled. If your flow bypasses checkout, rely on the Status: Completed event. Some flows may skip the thank-you hook.

How to translate the plugin?

Use languages/wwn.pot with POEdit/Loco Translate to generate .po/.mo files.

Troubleshooting

  • No message received: Check gateway token, enable events, verify billing phone, and review WooCommerce logs (WP_DEBUG_LOG).
  • Wrong phone format: Set the correct Default country code so 0812… → 62812….
  • Zero-total not sent: Enable the toggle and ensure you use a status-based event (e.g. Completed) if you bypass checkout.

Hooks & Filters

Filter: Admin phone override

/**
 * Change admin target phone number dynamically
 */
add_filter('wwn_admin_phone', function($phone){
    // e.g. switch by store, site, or environment
    return $phone;
});

Changelog (excerpt)

  • 1.2.3g — Guaranteed zero-total toggle in General; guards in order hooks; English templates.
  • 1.2.3f — Toggles: Show checkout opt-in & Require checkout opt-in; phone normalization.
  • 1.2.3e — Opt-in requirement control & normalization improvements.
  • 1.2.3 — English admin UI; .pot file; default English templates.