Description
Vibrate SMS connects your WordPress site to Vibrate, the Israeli SMS and WhatsApp Business platform, with direct connections to every Israeli carrier. One SMS is up to 256 characters in Hebrew, Arabic or English alike.
For businesses in Israel. Vibrate delivers SMS to Israeli phone numbers only. Numbers from other countries are never sent and are listed in the SMS log as not sent.
WooCommerce
- An SMS to the customer for every order status you choose (processing, completed, on hold, cancelled, refunded, failed, pending payment and custom statuses), each with its own message.
- Placeholders such as {first_name}, {order_number}, {order_total}, {items}, {payment_url}, {order_url} and {tracking_number}.
- Alerts to the shop team’s phones when an order is placed or changes status.
- An SMS for every “Note to customer” you add to an order (optional).
- Send an SMS to the customer straight from the order screen, with the order’s SMS history next to it.
- A private order note for every SMS sent, refused or blocked.
- Compatible with HPOS (custom order tables) and the block checkout.
Everywhere else
- A Send SMS page in wp-admin for one or many numbers.
- An SMS log with delivery status (accepted, sent, delivered, failed), refreshed automatically from Vibrate.
vibrate_sms_send()anddo_action( 'vibrate_sms_send', ... )for developers, plus filters and actions for every step.
Built with care
- The access key is encrypted at rest with your site’s own salts, never printed back into the page, and can live in wp-config.php instead.
- Every send carries an Idempotency-Key, so a retry after a timeout can never deliver or bill the same SMS twice.
- Order SMS are sent in the background (Action Scheduler), so checkouts never wait for the SMS API, and they are retried automatically when Vibrate cannot be reached.
- Protection against SMS pumping: SMS go to Israeli numbers only, with hourly limits per number and per site, and names typed by customers are stripped of links before they reach an SMS.
- Each order status is texted at most once per order.
- Works with WordPress privacy tools (export and erase personal data), with a configurable log retention period.
- Right-to-left screens are fully supported.
You need a Vibrate account with SMS credits, an access key and an approved sender. Open an account.
Developers
$result = vibrate_sms_send( '050-1234567', 'Your table is ready.' );
Returns an array (status, batch_key, run_id, recipients, blocked, units) or a WP_Error. Pass array( 'async' => true ) to queue it in the background and array( 'source' => 'my_plugin' ) to label it in the log.
Filters: vibrate_sms_pre_send, vibrate_sms_send_order_sms, vibrate_sms_order_message, vibrate_sms_order_placeholders, vibrate_sms_order_phone, vibrate_sms_send_async, vibrate_sms_rate_limit_exempt_sources, vibrate_sms_send_capability, vibrate_sms_settings_capability.
Actions: vibrate_sms_send, vibrate_sms_sent, vibrate_sms_failed.
API reference: https://www.vibrate.co.il/developers
External services
This plugin sends SMS through the Vibrate API (https://api.vibrate.co.il), operated by Lightup Software Engineering. It needs a Vibrate account, and it contacts the API only once you enter an access key. Every request carries that key, and its user agent names the plugin and WordPress versions and your site’s address.
- When an SMS is sent (from the Send SMS page, for an order, or through vibrate_sms_send()), it sends the recipient’s phone number, the message text and your sender name.
- To track delivery, it asks for the status of messages it sent, by the ID Vibrate returned: every 10 minutes for two days after sending, and when you click Refresh delivery status.
- On the plugin’s admin pages and when you click Test connection, it asks for your Vibrate account’s name, email and SMS balance.
Vibrate terms of service: https://www.vibrate.co.il/en/terms-of-service
Vibrate privacy policy: https://www.vibrate.co.il/en/privacy-policy
The SMS log stays in your WordPress database and is deleted after the retention period you choose (90 days by default).
Screenshots






Installation
- In WordPress go to Plugins > Add New Plugin and search for “Vibrate SMS”.
- Click Install Now, then Activate.
- In Vibrate, create an access key under Developers > API Keys and make sure your sender is approved under SMS > Sender IDs.
- In WordPress go to Vibrate SMS > Settings, paste the access key, enter the sender exactly as it appears in Vibrate, and click Save.
- Click Test connection, then send yourself a test SMS.
- With WooCommerce, choose which order statuses send an SMS under Vibrate SMS > Settings > WooCommerce.
Updates appear in Dashboard > Updates like any other plugin.
FAQ
-
Where do I get an access key?
-
In the Vibrate app, under Developers > API Keys (https://www.vibrate.co.il/sms/tokens).
-
Why does it say my sender is invalid?
-
The sender in the plugin must exactly match an approved, active sender on your Vibrate account (SMS > Sender IDs). Keys of a sub-account can only use senders assigned to that sub-account.
-
How much does an SMS cost?
-
Every 256 characters of a message count as one SMS per recipient, in any language. The plugin shows the count as you type. Credits are bought in the Vibrate app and never expire.
-
A customer did not get an SMS. Why?
-
Open Vibrate SMS > Log. Every SMS is listed with its status and, for anything not sent, the reason: an invalid number, a number from outside Israel, an hourly limit, or the reason Vibrate gave.
-
Can I send to numbers outside Israel?
-
No. Vibrate delivers SMS to Israeli phone numbers only. A number from another country is never sent, so it is never charged; the SMS log lists it as not sent, with the reason.
-
Can I keep the access key out of the database?
-
Yes. Add
define( 'VIBRATE_SMS_ACCESS_TOKEN', 'your-key' );(and optionallydefine( 'VIBRATE_SMS_SENDER', 'MyShop' );) to wp-config.php. -
Does it send marketing campaigns?
-
The plugin is built for transactional messages (order updates, alerts, codes). For campaigns to contact lists, use the Vibrate app. Promotional SMS require the recipient’s consent.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Vibrate SMS” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Vibrate SMS” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.2.3
- The saved sender and message templates drop any HTML markup.
- Each setting declares its sanitizing function where it is registered, and the bundled translations load from their own file.
1.2.2
- Requires WordPress 6.2 or later: database queries now pass the log table’s name to $wpdb->prepare() as an identifier.
- The readme lists what the plugin sends to Vibrate, and when (External services).
1.2.1
- Fixed the text shown in the SMS log for a message the carrier reports as not delivered: it no longer says the credit is refunded, which is not the case.
1.2.0
- Israel only, said plainly: the plugin sends to Israeli phone numbers only, and says so on the settings and Send SMS pages and in this readme.
- The options to allow other countries and the default country code setting were removed. Team alert numbers must be Israeli too.
1.1.0
- New design in the Vibrate look: the Vibrate menu icon, a page header with your SMS balance, and a phone preview that shows each message as the recipient will see it, with order templates filled in from a sample order.
- Guided first-time setup in three steps.
- Israeli numbers that cannot exist (not 8 or 9 digits after 972) are refused before anything is sent.
1.0.0
- First release: WooCommerce order SMS, team alerts, notes to the customer, SMS from the order screen, Send SMS page, SMS log with delivery status, developer API, abuse protection, encrypted access key, Hebrew and Arabic translations.
