=== Invoice Maker — Payments with Stripe ===
Contributors: invoicewp
Tags: invoice, billing, stripe, pdf, client portal
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 0.1.9
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Create invoices, manage clients, generate PDFs, and send invoice emails from WordPress.

== Description ==

**Invoice Maker — Payments with Stripe** helps you run invoicing inside WordPress:

* Create and manage invoices in wp-admin.
* Maintain a client list and reusable line items.
* Send invoice emails to clients.
* Share public invoice links and PDF downloads.
* Accept payments with Stripe Connect (payments processed by Stripe; this plugin is not affiliated with Stripe, Inc.).
* Offer a customer portal with login and invitation-based registration.

= Learn more =

* To make professional invoices in the cloud, use [InvoiceMaker.com](https://invoicemaker.com)
* Try our free invoice generator at [InvoiceMaker.com/#invoice-generator](https://invoicemaker.com/#invoice-generator)
* For invoice templates and resources, visit [InvoiceMaker.com/templates](https://invoicemaker.com/templates)
* For a complete guide on how to create invoices, visit [InvoiceMaker.com/how-to-create-invoices](https://invoicemaker.com/how-to-create-invoices)

= External services =

This plugin connects to third-party services. Below: what each service is, what data is sent, when requests happen, and links to terms and privacy policies.

1. **Invoice Maker platform API** (default base URL `https://api.invoicewp.com`; overridable with the `INVOICEWP_API_BASE_URL` constant or the `invoicewp_api_base_url` filter)

   * **What it is:** A hosted HTTPS JSON API operated in connection with this plugin. It holds platform-side Stripe credentials and performs actions your WordPress site cannot do locally without those secrets.
   * **What it is used for:** Creating Stripe Connect onboarding / account links, creating hosted Stripe Checkout sessions for invoice payments, and (only if you explicitly opt in under **Invoice Maker → Settings → Payments (Stripe) → Platform API consent**) sending your site’s **public** Stripe webhook REST URL to the platform **once** so it can register that endpoint with Stripe and return a webhook signing secret for this site.
   * **When it runs:** When a site administrator uses Stripe-related actions in wp-admin (for example “Connect with Stripe”, “Continue Stripe onboarding”, opening the Express dashboard), when a customer starts the hosted Checkout flow for an invoice, and—if and only if you enable the opt-in checkbox and no webhook signing secret is stored yet—during an admin load of Invoice Maker screens to attempt automatic webhook registration.
   * **Data sent:** Bearer-authenticated JSON requests may include your connected Stripe account ID, invoice totals and currency, invoice numbers and internal IDs, public invoice tokens, success and cancel redirect URLs, and (when the opt-in is enabled and a secret is still missing) the public REST URL of this site’s Stripe webhook endpoint. The plugin does not send visitor analytics, page-view tracking, or unrelated telemetry to this API.
   * **Terms of use:** https://invoicewp.com/terms/
   * **Privacy policy:** https://invoicewp.com/privacy-policy/

2. **Stripe** (`https://stripe.com`)

   * **What it is:** Stripe’s payment and Connect services.
   * **What it is used for:** Payment processing, Connect Express onboarding, and hosted Checkout pages.
   * **When it runs:** When administrators complete Connect onboarding and when payers complete checkout.
   * **Data sent:** Data required by Stripe for those flows (including payment and account information as defined by Stripe).
   * **Terms:** https://stripe.com/legal
   * **Privacy policy:** https://stripe.com/privacy

Stripe is a trademark of Stripe, Inc. This plugin is not endorsed by or affiliated with Stripe.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/` (on WordPress.org the folder name will match your approved plugin slug).
2. Activate **Invoice Maker — Payments with Stripe** through the Plugins screen.
3. Go to **Invoice Maker → Settings** and configure company details.
4. (Optional) Configure Stripe in **Invoice Maker → Settings → Payments (Stripe)**.

Developers may optionally add a `platform-stripe.credentials.php` file in the plugin root (not included in the WordPress.org package) or use `wp-config.php` constants documented in the plugin code.

== Frequently Asked Questions ==

= How do clients view invoices? =

Use the generated client links, the `[invoicewp_invoice]` shortcode, or the client portal shortcodes.

= Does this support online payments? =

Yes. Stripe Connect is supported for hosted checkout. Stripe is a third party; see **External services** above.

= Can users self-register for the portal? =

Registration is invitation-based. Admin sends a client invitation from **Invoice Maker → Clients**.

== Screenshots ==

1. Invoice list in wp-admin.
2. Invoice editor with line items.
3. Client manager and portal invitation workflow.
4. Stripe payments setup.

== Changelog ==

= 0.1.9 =
* Fix invoice editor Add Row and Insert saved item buttons (dedicated invoice-editor.js enqueue).

= 0.1.8 =
* Add free invoice generator link to readme Learn more section.

= 0.1.7 =
* Learn more readme links use Markdown syntax for clickable hyperlinks on WordPress.org.

= 0.1.6 =
* Readme Learn more links use plain URLs (WordPress.org strips HTML in descriptions).

= 0.1.5 =
* Fix Learn more links in readme (HTML anchors for WordPress.org display).

= 0.1.4 =
* Added Learn more links in the plugin description (InvoiceMaker.com resources and WordPress.org plugin page).

= 0.1.3 =
* Declared compatibility with WordPress 7.0.

= 0.1.2 =
* Text domain matches WordPress.org slug: invoice-maker-payments-with-stripe.
* Removed platform-stripe.credentials.php.example from the distribution package.
* Upgraded stripe/stripe-php to 20.1.0.
* Portal registration uses wp_create_user() and wp_signon() instead of manual cookies.
* Sanitized bulk admin actions and escaped PDF/public invoice output.

= 0.1.1 =
* WordPress.org review: load PDF CSS via wp_register_style() and wp_add_inline_style().
* Harden admin bulk actions with nonce and capability checks before reading POST data.
* Resolve public invoice tokens via registered query vars instead of raw $_GET.

= 0.1.0 =
* Initial public release.
* Invoices, clients, saved items, PDFs, and email sending.
* Public invoice links and shortcode rendering.
* Stripe Connect onboarding and hosted checkout.
* Client portal login/registration/invitation flows.

== Upgrade Notice ==

= 0.1.9 =
Fixes invoice line item Add Row and Insert buttons in wp-admin.

= 0.1.8 =
Readme update: free invoice generator link.

= 0.1.7 =
Readme hyperlink fix for Learn more section.

= 0.1.6 =
Readme display fix for Learn more links on WordPress.org.

= 0.1.5 =
Readme link display fix on WordPress.org.

= 0.1.4 =
Readme updates only.

= 0.1.3 =
WordPress 7.0 compatibility declaration.

= 0.1.2 =
WordPress.org review fixes: translations, security hardening, dependency update.

= 0.1.1 =
Security and WordPress coding standards improvements for plugin directory review.

= 0.1.0 =
Initial release.
