=== WingsFlow Order Notifications ===
Contributors: wirewings
Tags: whatsapp, woocommerce, order notifications
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 1.0.0
License: GPLv2 or later

== Description ==
Connect WooCommerce to your WingsFlow account. A paid WingsFlow plan, connected WhatsApp business number, enabled recipes and approved templates are required. Optional, unchecked checkout consent supports classic and block checkout. Billing phone numbers must include a +country code. No marketing consent is inferred.

== Installation ==
Upload this ZIP through Plugins > Add New > Upload. Activate WooCommerce 8.9+ and this plugin. Open WooCommerce > WhatsApp notifications. Create a restricted WingsFlow key with contacts:write, consents:write, events:write and messages:write, and grant the relevant channel/templates. Enter the public HTTPS API URL and key. Configure order.created, payment.success, payment.failed and payment.refunded recipes in WingsFlow. Place a consented test order using an international phone number.

== External service ==
This plugin sends the consented customer's phone number, name, order number, total, currency and order/payment/refund references to the merchant-configured WingsFlow server. API requests occur server-side after checkout and on payment events. WingsFlow then queues WhatsApp messages according to the merchant's plan, customer consent and approved templates. API keys are encrypted using the site's WordPress auth salt. No data is sent until the merchant enables the connection and the shopper opts in. Review your WingsFlow service terms and privacy policy before enabling. Retain checkout consent evidence for your retention policy.

== Shipping integrations ==
A fulfilment extension may call do_action('wingsflow_order_shipped', $order_id, $stable_fulfilment_id, $https_tracking_url, $carrier) after it confirms shipment. WooCommerce core does not expose a universal shipment event.

== Operations ==
WooCommerce Action Scheduler provides background delivery. HTTP 202 means admitted, not WhatsApp delivery. Each order retains immutable request snapshots so retries keep the same identity. Failed permanent requests become review jobs with an order note. Never manually recreate a job with another identity after a transport timeout. Changing WordPress salts requires reconnecting the key. Disabling prevents pending sends. Existing order evidence is retained on deactivation; remove credentials before transferring your site.

== Release status ==
Installable candidate. Real store acceptance and WordPress.org review are separate; this package is not a marketplace-approved listing.
