=== StealthPaid for WooCommerce ===
Contributors: stealthpaid
Tags: payments, gateway, checkout, crypto, usdc
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Accept card, bank transfer and local method payments through StealthPaid, settled in USDC, with order status driven by a signed webhook.

== Description ==

StealthPaid for WooCommerce adds StealthPaid as a payment method at checkout. Customers pay by card, bank transfer or local payment methods on the StealthPaid hosted checkout, and your store settles in USDC. Orders are confirmed by a signed webhook, never by the customer's browser alone, so a closed tab or a flaky connection never leaves an order stuck.

Features:

* Classic and block based checkout support.
* Configurable order status once a payment is confirmed paid.
* A single reconciliation check on the order-received page while the webhook is in flight.
* Signed webhooks verified with a constant time comparison, a five minute timestamp window and delivery deduplication.
* Optional debug logging to the WooCommerce logs.

== Installation ==

1. Upload the plugin zip through Plugins, Add New, Upload Plugin, or extract it into `wp-content/plugins/`.
2. Activate StealthPaid for WooCommerce. WooCommerce must already be installed and active.
3. Go to WooCommerce, Settings, Payments, and open StealthPaid.
4. In your StealthPaid dashboard, create an API key and paste it into the API key field.
5. Copy the Webhook URL shown on the settings page. In your StealthPaid dashboard, register a webhook endpoint with that exact URL, and copy the secret it gives you back into the Webhook secret field.
6. Choose the order status to apply once a payment is confirmed paid, save, and enable the gateway.
7. Place a small test order to confirm the full flow before going live.

== Frequently Asked Questions ==

= My orders stay pending after the customer pays =

The order only advances once StealthPaid's webhook reaches your store, or once the order-received page's single reconciliation check confirms it. Check WooCommerce, Status, Logs, source `stealthpaid` (turn on Debug logging first), for a rejected or missing delivery. Confirm the Webhook URL registered in your StealthPaid dashboard matches the one shown on the settings page exactly, and that your site is publicly reachable.

= I see "signature mismatch" in the logs =

The Webhook secret in the plugin settings does not match the secret shown for that endpoint in your StealthPaid dashboard. Re-copy the secret from the dashboard into the plugin settings and save. Do not reuse a secret from a different webhook endpoint.

== Changelog ==

= 1.0.0 =
* Initial release: classic and block checkout gateway, signed webhook handler, order-received reconciliation check.
