WAservix WordPress plugin
The free WAservix for WordPress plugin connects your WordPress site or WooCommerce shop to WAservix: order messages, new-order and form alerts, a send screen, read receipts, incoming messages and a WhatsApp chat button, sent from your own WhatsApp number. No code needed.
Download
The plugin is free and works on the WAservix free trial and on every plan. Everything it does goes through your own WAservix account and API key, so it follows your trial or plan exactly: phone number, message limits and expiry work as in the dashboard, and the plugin never adds, removes or changes anything on your subscription. When a trial or plan ends, sending stops until you subscribe. Updates appear in Dashboard → Updates like any other plugin while your key is saved.
Install the plugin
- Download
wapenda.zipabove. - In WordPress open Plugins → Add New → Upload Plugin, choose the file and click Install Now.
- Click Activate. A new WAservix menu appears in the sidebar.
With WP-CLI, upload the downloaded file to the server and run:
wp plugin install ./wapenda.zip --activate # after downloading it
Connect your WAservix account
Open WAservix → Settings, paste your API key from WAservix → Devices → API key (it starts with wpk_) and click Save and test connection. The card at the top shows whether your WhatsApp number is connected. Each WhatsApp number has its own key: use the key of the number your shop should send from.
Add your own numbers under Admin numbers for new-order and form alerts, and set a Default country code so numbers typed like 0788123456 become +250788123456. WooCommerce orders use the customer’s billing country automatically.
Prefer to keep the key out of the database? Add it to wp-config.php instead; the settings page then shows it masked:
define( 'WAPENDA_API_KEY', 'wpk_your_key' );
WooCommerce order messages
Under Settings → WooCommerce, tick the order statuses that should message the customer and edit each text. Processing and completed are on by default. Each order gets one message per status, and a note is added to the order.
| Placeholder | Becomes |
|---|---|
{first_name} | Billing first name |
{last_name} | Billing last name |
{order_number} | Order number |
{order_total} | Total with currency, e.g. RWF 25,000 |
{order_status} | Status name |
{items_count} | Number of items |
{order_url} | The customer’s “view order” page |
{pay_url} | Payment page (useful for failed payments) |
{site_name} | Your site title |
{customer_name / customer_phone} | Admin alert only |
Turn on New order alert to admins to get a WhatsApp message on your own numbers for every new order. Developers can change any text with the wapenda_wp_order_message filter.
WhatsApp formatting works in every template: *bold*, _italic_, ~strike~.
Form alerts
Tick Text the admin numbers when a form is submitted to get WhatsApp alerts for Contact Form 7, WPForms, Elementor Pro Forms, Gravity Forms and Fluent Forms. {fields} lists the answers (passwords, card numbers and captcha fields are left out). To alert only for some forms, list their names under Only these forms.
Form alerts only ever go to your admin numbers, never to a number a visitor types into the form, so nobody can use your forms to send messages from your account.
Send messages and see the log
WAservix → Send message sends to one or many numbers (up to 100 at once), with an optional image or document link (https) as an attachment. WAservix → Messages shows every message the plugin sent or received, its status, the error if it failed, and a link to the WooCommerce order.
For big lists, use WAservix campaigns in the dashboard: they pace sends and handle opt-outs.
Delivery reports and replies (webhook)
To see sent, delivered and read receipts and incoming messages in WordPress:
- Copy the Webhook URL from WAservix → Settings → Webhook. It looks like
https://yoursite.com/wp-json/wapenda/v1/webhook. - In WAservix → Devices, set it as the device’s webhook URL and the events
messages.received,message.sent,messages.updateandsession.status. - Copy the webhook secret into Webhook secret and save.
The plugin rejects any request whose X-Webhook-Signature does not match your secret (compared in constant time). It can also email you when your number disconnects (at most every 6 hours), so orders don’t silently stop messaging customers.
WhatsApp chat button
Under Settings → WhatsApp chat button, turn on the floating button, choose the side, an optional label and a pre-filled message ({page_title} and {page_url} work). It uses a normal wa.me link, so no key ever reaches the browser. Place a button anywhere with the shortcode:
[wapenda_chat label="Order on WhatsApp" text="Hi, I want to order {page_title}"]
Safety settings
- Automatic messages per hour is optional and off by default (0 = no limit). Set a number if you want a flood of fake orders or form spam not to get your WhatsApp number flagged. Messages you send by hand are not counted. Your WAservix plan’s own limits always apply.
- Only administrators (
manage_options) can see the screens, change settings or send. Every form is protected with a WordPress nonce. - Your API key is never printed back in full or sent to visitors’ browsers.
- The plugin can’t do anything your WAservix trial or plan doesn’t allow, and it can’t extend or change them: plans, trials and limits are checked by WAservix, not by WordPress.
- Only message people who expect to hear from you, such as customers who ordered. WhatsApp can ban numbers that send spam.
For developers
Functions, actions and filters you can use in a theme or plugin:
PHP
// Send from your own code (returns data or a WP_Error)
wapenda_send( '+250788123456', 'Your booking is confirmed' );
// Send a document (WAservix)
wapenda_send( '+250788123456', 'Your invoice', [ 'documentUrl' => 'https://yoursite.com/inv-1042.pdf', 'fileName' => 'Invoice-1042.pdf' ] );
// React to incoming messages (webhook must be set up)
add_action( 'wapenda_wp_received', function ( $from, $text ) {
if ( strtoupper( trim( $text ) ) === 'STOP' ) {
// add $from to your opt-out list
}
}, 10, 2 );
// Change an order message before it is sent
add_filter( 'wapenda_wp_order_message', function ( $text, $order, $status ) {
return $text . "\nTrack: " . $order->get_view_order_url();
}, 10, 3 );Other hooks: wapenda_wp_webhook (every webhook event), wapenda_wp_sent, wapenda_wp_admin_order_message, wapenda_wp_form_message, wapenda_wp_order_vars and wapenda_wp_capability (who may use the screens). Messages are sent in the background with WooCommerce’s Action Scheduler (or WP-Cron), so checkout stays fast. For anything the plugin doesn’t cover, use the WAservix API directly or the WordPress code guide.
Troubleshooting
Can I test it on the free trial?
Yes. Start the free trial in the dashboard, create a key and paste it into the plugin. Everything works within the trial’s limits; when the trial ends, the plugin stops sending until you choose a plan.
Nothing is sent. What should I check?
Open WAservix → Send: the card shows your plan and whether your number is connected. Then open WAservix → Messages: each failed message shows the reason (for example a wrong key, no active plan or the hourly limit).
Order messages arrive late.
They are sent in the background. On low-traffic sites WP-Cron only runs when someone visits; set up a real cron job for wp-cron.php, or install WooCommerce (its Action Scheduler runs them quickly).
Do I need WooCommerce?
No. Without it you still get form alerts, the send screen, the log and the chat button.
Does it work on multisite?
Yes, activate it per site. Each site connects its own key.
What happens when I delete the plugin?
Deleting it (not just deactivating) removes its settings and message log from your database.
Changelog
1.0.0 (3 November 2026): first release.