=== BulkSMS TZ ===
Contributors: oasistech
Tags: sms, woocommerce, notifications, tanzania, bulksms
Requires at least: 5.8
Tested up to: 6.7
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Send automatic SMS from WooCommerce and WordPress events through your BulkSMS TZ account.

== Description ==

Notify customers by SMS the moment something happens on your site — a new order, a status change,
a new registration — using your existing BulkSMS TZ credits and your own approved Sender ID.

* **WooCommerce order placed** — confirm to the customer, and optionally alert the shop owner.
* **Order status changed** — a separate message per status (processing, completed, cancelled, or any
  custom status your shop uses).
* **New user registered** — welcome message, reading the phone from the usual meta fields.
* **Personalised** — drop `{customer_name}`, `{order_id}`, `{total}` and more into any message.
* **Send log** — see what went out, what failed, and why, without leaving WordPress.

Every trigger is off by default and each has its own message, so you only pay for the SMS you
actually want to send.

= Requirements =

A BulkSMS TZ account with an approved Sender ID and available credits. Create an API key under
**Integrations → API Keys** in your BulkSMS dashboard; it needs the `messages:send` scope.

== Installation ==

1. Upload the `bulksms-tz` folder to `/wp-content/plugins/`, or install the ZIP via
   **Plugins → Add New → Upload Plugin**.
2. Activate the plugin.
3. Go to **BulkSMS TZ** in the admin menu.
4. Paste your API key and Sender ID, then press **Send test SMS** to confirm the connection.
5. Tick the triggers you want and write each message.

== Frequently Asked Questions ==

= Why did a message not send? =

Open **BulkSMS TZ → Recent activity**. `skipped` means the customer had no usable phone number, so
nothing was sent and no credit was used. `failed` shows the reason returned by the API — most often
an unapproved Sender ID or an empty balance.

= Which phone formats work? =

`0712345678`, `+255712345678`, `255712345678` and `712345678` all resolve to the same number.
Anything that can't be resolved is skipped rather than guessed at.

= Why should I avoid emoji and curly quotes? =

An SMS holds 160 plain (GSM-7) characters. A single non-standard character — an emoji, a curly
quote, an en dash — switches the whole message to Unicode, which holds only 70 characters per part
and therefore costs twice as much.

= Does it work without WooCommerce? =

Yes. The WooCommerce triggers simply don't appear, and the new-user trigger still works.

== Changelog ==

= 1.0.0 =
* First release: WooCommerce order and status triggers, new-user trigger, templates with
  placeholders, test send, and an on-site delivery log.
