WP Manifestindependent plugin directory
manifest / social / wordpress-whatsapp-plugin

Zaptilo WhatsApp

Free WordPress / Woocommerce plugin to send WhatsApp Business messages via Zaptilo API.

by Zaptilo · github.com/zaptilo/wordpress-whatsapp-plugin · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/zaptilo/wordpress-whatsapp-plugin/archive/refs/heads/main.zip

Zaptilo WhatsApp — WordPress Plugin

Send WhatsApp Business messages from WordPress and WooCommerce — form notifications, order updates, COD verification, abandoned cart recovery — via the Zaptilo WhatsApp API.

This is the source repository for the Zaptilo WhatsApp WordPress plugin. The plugin lives at wp-content/plugins/zaptilo-whatsapp/ after install.

Features (all free)

Category Feature
Connection API token + base URL + default country code
Forms Contact Form 7, Gravity Forms, Elementor Pro Forms, WPForms
WooCommerce Order placed → WhatsApp
WooCommerce Order shipped → WhatsApp
WooCommerce Order completed → WhatsApp
WooCommerce COD verification (reduces RTO 25-40%)
WooCommerce Abandoned cart recovery (1h, 6h, 24h sequence)
Diagnostics Message log with delivery status

Requirements

  • WordPress 5.6+
  • PHP 7.4+
  • A free Zaptilo account (for the API token)
  • WooCommerce 6+ (only if you want WooCommerce features)

Install

From the WordPress.org plugin repository (recommended once published)

Plugins → Add New → search "Zaptilo WhatsApp" → Install Now → Activate

Manual install

  1. Download a release zip from this repo or build from source:
    git clone https://github.com/zaptilo/wordpress-whatsapp-plugin.git zaptilo-whatsapp
    zip -r zaptilo-whatsapp.zip zaptilo-whatsapp
  2. WordPress Admin → Plugins → Add New → Upload Plugin → choose the zip
  3. Activate
  4. Open Settings → Zaptilo WhatsApp and configure your API token + per-event templates

Configuration

1. Get a Zaptilo API token

Sign up at web.zaptilo.ai → Developer Tools → Access Tokens → copy the token.

2. Submit message templates to Meta (via Zaptilo dashboard)

For each event you want to use, submit an approved template. Examples:

Event Template name Body
Form submission contact_thanks Hi {{1}}, thanks for reaching out. Our team will get back to you shortly.
Order placed order_confirmation Hi {{1}}, your order #{{2}} for {{3}} is confirmed.
Order shipped order_shipped Hi {{1}}, your order #{{2}} is shipped. Track at {{3}}.
Order delivered order_delivered Hi {{1}}, your order #{{2}} has been delivered. Hope you love it!
COD verification cod_verification Hi {{1}}, please confirm your COD order #{{2}} for {{3}}.
Abandoned cart 1h abandoned_cart_1h Hi {{1}}, you left items in your cart. Complete your order: {{2}}
Abandoned cart 6h abandoned_cart_6h Hi {{1}}, your cart of {{2}} is waiting. Checkout now: {{3}}
Abandoned cart 24h abandoned_cart_24h Hi {{1}}, last chance — complete your order: {{2}}

Meta typically approves Utility templates within an hour.

3. Configure each event in WordPress admin

Each setting takes the format:

template_name | language_code | field1, field2, field3

For example, for Order placed:

order_confirmation | en | customer_first_name, order_number, order_total

This sends template order_confirmation (English) with {{1}} = customer first name, {{2}} = order number, {{3}} = order total.

4. Available field tokens

WooCommerce events:

  • customer_first_name, customer_last_name, customer_full_name
  • order_number, order_total, order_status, order_url
  • tracking_number, tracking_url (from order meta _tracking_number / _tracking_url)
  • shop_name

Abandoned cart:

  • customer_first_name, cart_total, cart_items_count, cart_url, shop_name

Form integrations:

  • Use the actual field name from your form (e.g. your-name for Contact Form 7's [your-name]).

Architecture

zaptilo-whatsapp.php           ← main plugin file (entrypoint, hooks)
includes/
  class-zaptilo-client.php     ← REST API wrapper (wp_remote_post)
  class-zaptilo-settings.php   ← admin settings page
  class-zaptilo-logger.php     ← message log + custom DB table
integrations/
  cf7.php                      ← Contact Form 7
  gravity-forms.php            ← Gravity Forms
  elementor-forms.php          ← Elementor Pro Forms
  wpforms.php                  ← WPForms
  woocommerce.php              ← order placed / shipped / completed
  woocommerce-cod.php          ← COD verification (only on payment_method=cod)
  woocommerce-abandoned-cart.php ← cart capture + hourly cron
admin/views/
  settings.php                 ← /wp-admin settings page
  logs.php                     ← /wp-admin message log page
assets/css/admin.css           ← admin styling
uninstall.php                  ← clean up tables + options on uninstall
readme.txt                     ← WP.org plugin repository metadata

Database tables created

Table Purpose
wp_zaptilo_wa_log API call log (auto-prunes to last 5000 entries)
wp_zaptilo_wa_abandoned_cart Cart capture for the abandoned-cart cron

Both are dropped automatically on plugin uninstall.

Cron

The plugin schedules an hourly WP-cron event called zaptilo_wa_abandoned_cart_cron for the abandoned-cart sequence. WP-cron only fires when there's site traffic — for low-traffic sites, set up a real cron hitting wp-cron.php.

Support

License

GPLv2 or later — see LICENSE.