=== InvoHawk – PDF Invoices for WooCommerce ===
Contributors: invohawk
Tags: woocommerce, pdf invoices, invoices, invoicing
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.2
Stable tag: 0.2.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Generate and download clean PDF invoices from WooCommerce orders using the InvoHawk cloud service.

== Description ==

InvoHawk adds a simple PDF invoice workflow to WooCommerce.

Connect your store from WooCommerce > InvoHawk, then open an individual WooCommerce order to generate, prepare, and download its PDF invoice. InvoHawk keeps the WordPress plugin lightweight while the external InvoHawk service creates and stores the invoice PDF.

A separate InvoHawk dashboard or password-based account is not required. The plugin creates and saves the store connection when the store owner accepts the Terms and Privacy Policy and selects Start free.

= Key features =

* Generate PDF invoices from individual WooCommerce orders.
* Download prepared invoices directly from the WooCommerce order screen.
* Keep invoice data synchronized when relevant WooCommerce order information changes.
* Show clear preparing, ready, failed, plan-limit, and renewal states.
* Poll invoice status automatically, with a manual Refresh status fallback.
* Support WooCommerce High-Performance Order Storage (HPOS) and classic order storage.
* Store invoice PDFs privately through the InvoHawk service.
* Start with a free allowance before choosing optional paid access.
* Open secure, store-specific upgrade and renewal pages supplied by the InvoHawk service.
* Keep payment-provider code and card details outside WordPress.

InvoHawk does not generate PDFs locally inside WordPress. An active connection to the external InvoHawk service is required for setup, invoice generation, PDF storage, status checks, downloads, and plan management.

InvoHawk is an invoice-generation tool. Store owners remain responsible for reviewing invoice content and determining whether it meets their accounting, tax, legal, and business requirements.

== How It Works ==

1. Install and activate the plugin.
2. Open WooCommerce > InvoHawk.
3. Review and accept the InvoHawk Terms of Service and Privacy Policy.
4. Select Start free. The plugin creates and saves the store connection automatically.
5. Review the seller details used on invoice PDFs.
6. Open a WooCommerce order.
7. Select Generate Invoice when an invoice is not already available.
8. InvoHawk securely sends the current order data to the external service.
9. The service creates or updates the invoice, prepares the PDF, and stores it privately.
10. The order screen changes to Download Invoice when the file is ready.

The plugin also synchronizes supported WooCommerce customer-order events and administrative order changes. Existing invoices are updated only when invoice-relevant order data changes. Bulk invoice generation and order-list invoice actions are not included in the current version.

== External Service ==

This plugin depends on the external InvoHawk service operated by the plugin author:

[https://invohawk.com/](https://invohawk.com/)

The plugin communicates with InvoHawk under the following circumstances:

* When the store owner accepts the Terms and Privacy Policy and selects Start free.
* When an existing connection is tested or the store status is refreshed.
* When seller details are synchronized.
* When supported WooCommerce order events or administrative order changes are synchronized.
* When the store owner generates an invoice, retries a failed preparation, refreshes invoice status, or downloads an invoice.
* When the plugin requests plan, usage, compatibility, upgrade, or renewal information.

The external service performs substantial functionality required by the plugin, including:

* Store registration and connection authentication.
* Seller-profile storage.
* WooCommerce order and invoice snapshot processing.
* Invoice numbering and invoice data management.
* PDF generation.
* Private PDF storage and authenticated downloads.
* Free-plan limit and paid-access status management.
* Secure store-specific upgrade and renewal links.
* Payment verification and paid-access activation when paid access is purchased.

The plugin does not download or execute PHP code from InvoHawk. Plugin updates are intended to be delivered through WordPress.org.

Service terms and policies:

* [Terms of Service](https://invohawk.com/terms)
* [Privacy Policy](https://invohawk.com/privacy)
* [Payment Information](https://invohawk.com/payment)
* [Refund Policy](https://invohawk.com/refund)

The free invoice allowance, watermarking, invoice limits, and paid-access periods apply to processing performed by the external InvoHawk service. The plugin does not contain a locally locked premium implementation or a local PDF generator, and no plugin code is downloaded or unlocked after payment.

== Data Sent to InvoHawk ==

The plugin sends data to InvoHawk only as needed to connect the store and provide the invoice service.

= During store setup =

The plugin may send:

* Store or site name.
* Store URL.
* Contact email.
* Confirmation that the store owner accepted the Terms of Service and Privacy Policy.
* A persistent onboarding identifier used to make setup retries idempotent.
* Onboarding source and client type.
* InvoHawk plugin version.
* WordPress version.
* WooCommerce version.
* Whether HPOS is enabled.

= Seller information =

The plugin may send seller details used on generated invoices:

* Company or seller name.
* Company address.
* Company email.
* VAT or tax identifier, when provided.

= WooCommerce order and customer information =

When an invoice is created, updated, retried, or checked, the plugin may send:

* WooCommerce order ID and order number.
* Order status.
* Currency.
* Product names, quantities, line subtotals, and line totals.
* Shipping, fee, tax, subtotal, and order-total information.
* Customer name.
* Customer email.
* Customer billing or invoice address.
* Invoice-related state needed to prepare and retrieve the PDF.

This information is used to create and update invoice records, generate and store PDFs, make downloads available to the connected store, apply plan limits, and provide support and compatibility diagnostics.

= Authentication and compatibility metadata =

Authenticated requests include the store API key and may include the plugin, WordPress, WooCommerce, HPOS, and client versions. The API key is stored in the WordPress database and is not included in billing URLs.

= Payment data =

The plugin does not collect or transmit full payment card numbers or card security codes. When paid access is selected, the plugin opens a secure store-specific page on InvoHawk. Card fields are handled by the payment provider. InvoHawk may retain payment references, transaction identifiers, payment status, amount, currency, timestamps, and access-period information as described in the Privacy Policy.

== Free and Paid Access ==

The WordPress plugin code is open source and licensed under GPL-2.0-or-later. Invoice generation and PDF storage are provided by the external InvoHawk service.

= Free access =

* Up to 10 invoice records.
* PDF invoices include an InvoHawk watermark.
* The same individual-order WooCommerce workflow is available.

= Paid access =

* $19 one-time payment.
* 30 days of paid access.
* Unlimited invoice records during the paid period.
* No InvoHawk watermark during the paid period.
* No subscription.
* No automatic renewal.

Paid access can be extended before it expires or renewed after it expires by making another one-time payment. When paid access expires, new invoice generation is blocked until access is renewed. Previously stored invoice data and files remain subject to the service retention rules.

Current pricing and plan terms are also shown on the store-specific upgrade page before payment.

== Installation ==

= From the WordPress plugin directory =

1. In WordPress Admin, open Plugins > Add New Plugin.
2. Search for InvoHawk.
3. Install InvoHawk – PDF Invoices for WooCommerce.
4. Activate the plugin.

= From a ZIP file =

1. In WordPress Admin, open Plugins > Add New Plugin > Upload Plugin.
2. Select the InvoHawk ZIP file.
3. Install and activate the plugin.

= Connect the store =

1. Make sure WooCommerce is installed and active.
2. Open WooCommerce > InvoHawk.
3. Review and accept the Terms of Service and Privacy Policy.
4. Select Start free.
5. Review the seller details used on invoices.
6. Open a WooCommerce order and select Generate Invoice.

For additional setup help, see the [InvoHawk setup guide](https://invohawk.com/setup).

== Frequently Asked Questions ==

= Is an InvoHawk account required? =

A separate dashboard login or password-based account is not required. Selecting Start free creates a store connection and saves the API key automatically inside WordPress.

= Does the plugin work without the InvoHawk service? =

No. The plugin is a client for the external InvoHawk service. The service performs invoice processing, PDF generation, private PDF storage, downloads, plan management, and paid-access activation.

= What is included free? =

Free access includes up to 10 invoice records. Generated PDFs include an InvoHawk watermark.

= What does paid access include? =

Paid access costs $19 as a one-time payment for 30 days. It includes unlimited invoice records and removes the InvoHawk watermark during the active paid period.

= Is paid access a subscription? =

No. There is no subscription and no automatic renewal. Another one-time payment is required to extend or renew paid access.

= What happens when paid access expires? =

After paid access expires, the external InvoHawk service will not process new invoice generations until paid access is renewed. Previously generated files remain subject to the service's storage and retention rules.

= Where are PDF files generated and stored? =

PDF files are generated by the external InvoHawk service and stored privately by that service. The plugin downloads them through authenticated InvoHawk endpoints.

= Does InvoHawk email invoices to customers automatically? =

No. The current version prepares and downloads PDF invoices for the store owner. It does not automatically email invoices to WooCommerce customers.

= Does the plugin support HPOS? =

Yes. InvoHawk declares compatibility with WooCommerce High-Performance Order Storage and also supports classic WooCommerce order storage.

= Can I generate invoices for old or manually created orders? =

Yes. Open an individual saved WooCommerce order and select Generate Invoice. Manual administrative orders, including valid pending-payment orders, can be prepared from the order screen.

= Does the plugin support bulk invoice generation? =

No. The current version works from individual WooCommerce order screens. Bulk generation and order-list invoice actions are not included.

= What happens when an order changes? =

The plugin synchronizes invoice-relevant order changes. When relevant customer, item, shipping, fee, tax, or total information changes, InvoHawk updates the invoice snapshot and prepares a fresh PDF while preserving the invoice number.

= Is InvoHawk a tax or accounting compliance service? =

No. InvoHawk generates PDF invoices from WooCommerce and seller data. Store owners are responsible for reviewing invoice content and determining their tax, accounting, and legal obligations.

= What data is sent to InvoHawk? =

The plugin sends the store, seller, order, customer, authentication, and compatibility data described in the Data Sent to InvoHawk section. Full card details are not handled by the plugin or stored by InvoHawk.

= How do I stop using the service or request deletion of externally stored data? =

Deactivate or remove the plugin to stop normal plugin requests. Removing the plugin does not automatically delete data already stored by the external service. Contact support@invohawk.com with the store URL to request assistance with stored data.

== Screenshots ==

1. Start free setup inside WooCommerce > InvoHawk.
2. Connected InvoHawk settings with plan status and seller details.
3. InvoHawk order panel with a prepared invoice ready to download.
4. Example PDF invoice generated from a WooCommerce order.

== Privacy ==

The plugin stores connection settings, the store API key, seller settings, onboarding state, and selected interface preferences in the WordPress database. It also stores internal synchronization and recovery diagnostics in WooCommerce order metadata. Raw diagnostics are not displayed in the normal order interface.

After the store owner accepts the Terms and Privacy Policy and starts or configures the connection, the plugin communicates with the external InvoHawk service as described above.

The connected WooCommerce store owner is responsible for having an appropriate legal basis for processing and transmitting customer and order data through InvoHawk. InvoHawk uses invoice/customer data to provide the requested service and does not use customer invoice data for unrelated marketing.

Removing or deactivating the plugin does not automatically delete information already stored by the external InvoHawk service. Data-access or deletion requests can be sent to support@invohawk.com.

Full details are available in the [InvoHawk Privacy Policy](https://invohawk.com/privacy).

== Changelog ==

= 0.2.1 =

* Finalized the WordPress.org slug, plugin folder, main file, text domain, and package names as `invohawk`.
* Finalized internal naming and prefix consistency for WordPress.org compatibility.
* Retired the obsolete legacy download alias.
* Verified compatibility with WordPress 7.0.
* Updated the plugin name, metadata, and WordPress.org documentation.
* Declared compatibility with WooCommerce High-Performance Order Storage (HPOS).
* Added WooCommerce compatibility metadata.
* Simplified the WooCommerce order panel by removing user-facing raw technical details.
* Preserved internal diagnostics, logging, and plan-state recovery.
* Improved the invoice preparation error message and request-data handling.
* Added the full GNU GPL version 2 license text.

= 0.2.0 =

* Added paid-access expiry information.
* Added early paid-access extension and renewal actions.
* Added renewal reminders before paid access expires.
* Made external InvoHawk links open in a new tab.
* Improved manual plugin update guidance.

= 0.1.0 =

* Initial early-access ZIP release.
