=== WPSmartPay Pro ===
Contributors: converswp
Tags: payment forms, stripe, subscriptions, invoices, donation
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.1
Stable Tag: 3.5.0
License: GNU Version 2 or later

== Changelog ==
= [3.5.0] =
* New - Donor wall moderation, donor notes and donation CSV export
* New - Campaign reports
* New - Donation tabs on Subscriptions, and Contacts-aware customer export
* New - One switch to show or hide donor names
* Fix - Stripe card form layout; Link terms no longer cover the fields
* Update - Requires WPSmartPay 3.3.5

= [3.4.3] =
* Fix - Stripe payment rejection alert now also shows on the SmartPay dashboard, in its own box

= [3.4.2] =
* Fix - Stripe Payment Element: one-time payments no longer fail to confirm when Local & BNPL methods are off
* New - Site owner alert (Dashboard notice + payment activity log) when Stripe rejects a payment confirm

= [3.4.1] =
* Fix - Stripe, Paddle, Mollie, RazorPay: one checkout no longer creates two subscription records
* Fix - Subscription billing period now persists correctly and appears on the activated record
* Fix - `subscription.renewed` outgoing webhook now fires after each Stripe renewal cycle
* Fix - "Subscription Activated" email no longer sends on renewal — only on initial activation

= [3.4.0] =
* New - M-Pesa payments for Kenyan customers, powered by Safaricom Daraja
* New - Customers approve the PIN prompt on their phone, without leaving your site
* New - Guided setup with sandbox and live modes, so you can test before taking real money
* New - Copy-ready callback URLs and one-click C2B registration for Paybill payments
* New - Optional automatic M-Pesa reversal when you refund an order
* Improvement - Kenyan numbers are accepted in any format, and non-Safaricom lines are caught early
* Improvement - Cancelled, timed-out and failed payments explain what happened and offer a retry

= [3.3.12] =
* New - AI Form Builder icon updated to a magic wand — clearer visual than the previous clock icon
* New - Coupon enable/disable moved from the form sidebar into the Form Settings modal as its own tab — visible when the Settings modal is open
* Fix - AI Form Builder and coupon sidebar scripts now use file modification time for cache-busting, so browser-cached JS is refreshed after every deploy

= [3.3.11] =
* Improvement - Gateway settings tabs now show only enabled gateways instead of all registered gateways
* Improvement - All outgoing integrations (Slack, Telegram, Twilio, Google Sheets, Integrately, Zapier, Pabbly, ActiveCampaign) now emit structured debug log entries with event name, payment ID, endpoint URL, and plain-English failure hints
* Improvement - ActiveCampaign debug logs now include the full request URL, HTTP method, API error details, and per-status-code hints (401/402/403/404/422/429)
* Improvement - Stripe: checkout modes now use plain-language labels with Stripe doc links; Payment Element skips card fields on subscription forms and redirects directly to Stripe's hosted checkout
* Fix - License valid notice incorrectly showed "invalid" for sites running on localhost / Docker environments

= [3.3.10] =
* Fix - Fatal error on every admin page when the Paddle gateway was installed but not yet enabled
* Fix - Sites where the core plugin missed an automatic update now show a clear "Update Required" notice instead of crashing
* Fix - Integration warning notices no longer cause a layout jump on the SmartPay dashboard and SPA pages

= [3.3.9] =
* New - A licence badge in the SmartPay header, with a prompt to activate when it is not
* New - Mailchimp: optional double opt-in, and the customer's name synced onto the contact
* New - Mailchimp: links from settings straight to each audience's member list
* Improvement - Mailchimp: every attempt is recorded on the order — added, skipped, or failed and why
* Improvement - Mailchimp: the audience picker stays put when the API key is rejected, and says why
* Improvement - A payment area that cannot load now explains itself instead of sitting empty
* Fix - Mailchimp: form payments never subscribed anyone; only product purchases did
* Fix - Mailchimp: repeat customers and anyone already in the audience were rejected
* Fix - Mailchimp: switching the integration off did not actually stop it
* Fix - Forms built in the new editor sent a blank product name to the gateway
* Fix - Per-form settings on those forms were ignored in favour of the global one
* Fix - Checkout could load blank or half-drawn, on one-off and subscription forms alike
* Fix - Stripe embedded checkout stopped loading after a change to Stripe's API
* Fix - Turning off "Local & BNPL methods" now sticks; Klarna no longer reappears
* Fix - A payment that failed while checkout was being set up stayed on Pending
* Fix - "Update package not available" when updating Pro from the Plugins screen
* Fix - Gateway settings were unreachable until the gateway was switched on
* Fix - bKash, toyyibPay and Paytm settings would not open unless the store currency matched
* Fix - WPFunnels sent buyers to the site home page instead of the funnel step
* Fix - Customer suggestions on the manual payment screen were cut off mid-list
* Fix - Google Sheets and MailerLite stopped on a payment with no customer attached
* Fix - ActiveCampaign now accepts the API URL exactly as your dashboard shows it
* Fix - Uncanny Automator triggers register correctly instead of erroring
* Update - Test Mode is set per gateway now, so you can trial one while the others stay live
* Update - Requires WP SmartPay 3.3.0 or later
* Update - Install this build by hand once; automatic updates work from then on

= [3.3.8] =
* New - Stripe references (charge, subscription, customer, invoice, refund) saved with each order
* New - "Sync with Stripe" button on any order, plus automatic background re-checks
* New - Email and dashboard alert if payments stop being confirmed, with how to fix it
* Improvement - Chargebacks are now recorded on the order
* Improvement - Card authorisations awaiting capture show as "Processing"
* Improvement - Clearer checkout messages for every outcome
* Improvement - Payment fields that fail to load now say so instead of failing silently
* Fix - Successful payments could stay stuck on "Pending", and some customers were charged twice
* Fix - Checkout no longer shows a blank error box over a payment that succeeded
* Fix - Other payment methods on a Stripe form are no longer blocked
* Fix - Saved Stripe keys are no longer wiped by "Save Changes"
* Fix - A refunded order can no longer flip back to paid
* Fix - Correct amounts for JPY, KRW, KWD, HUF and ISK
* Fix - Switching between test and live no longer strands orders
* Fix - Spam check no longer fails on retry or interrupts a payment
* Fix - Pabbly Connect and Zapier no longer crash on older form settings
* Fix - A licence the server cannot find now reports its real status instead of an unknown one

= [3.3.7] =
* Fix - An unactivated license no longer shows as "Valid License"
* Fix - PHP notice about translations loading too early (WordPress 6.7+)

= [3.3.6] =
* Fix - License screen redesigned: clearer activation state, licence details, and copy/reveal for your key
* Fix - License keys containing uppercase characters now activate correctly instead of being silently rejected
* Fix - Failed activations now explain what went wrong (connection problem, server unavailable, rejected key) instead of failing silently
* Fix - PHP warnings no longer appear on the Licenses settings screen
* Security - Licence verification now uses a verified secure connection
* Security - Activating and deactivating a licence now requires administrator permissions

= [3.3.5] =
* New - Stripe Payment Element checkout mode available in gateway settings
* Fix - HTTPS warning no longer appears on sites with SSL active
* Fix - Slack, Telegram, and Google Sheets event checkboxes now save correctly
* Fix - MailChimp and MailerLite audience/group lists cached; API errors shown inline with a refresh button
* Fix - Pabbly, Zapier, and AffiliateWP no longer crash when payment data is incomplete

= [3.3.4] =
* Security - SQL injection prevention in payment list sort; manual payment keys use secure random generation; dashboard output properly escaped
* Fix - ActiveCampaign settings page no longer makes live API calls on every load; pending payments no longer create phantom subscribers
* Fix - Toolbar buttons in Webhooks and Bulk Coupons no longer trigger unintended page reloads

= [3.3.3] =
* Fix - Paddle subscription checkout overlay opens correctly
* Fix - Paddle settings no longer shows an HTTPS warning on local/staging environments

= [3.3.2] =
* New - Coupon toggle added to the form editor sidebar (enable/disable per form without leaving the editor)
* Fix - Form editor compatibility with WordPress 7.x
* Fix - Integration activation notices only appear on SmartPay admin pages

= [3.3.1] =
* Fix - Licence grace window bounded to 3 days; malformed licence responses no longer block future checks
* Fix - Customer dashboard subscription tab loads correctly for payments with multiple subscriptions
* Fix - Gateway scripts only load on pages that have a SmartPay form
* Fix - MCP: all 15 SmartPay tools now work as direct agent actions
* Fix - MailChimp no longer causes a fatal error when no API key is configured

= [3.3.0] =
* New - AI Form Builder: describe a form in plain text and AI builds it in one click
* New - AI Payment Copilot: chat widget for querying payments, customers, and creating coupons
* New - AI Payment Recovery: automated re-engagement email sent 2 hours after a failed payment
* New - Integrately integration: connect SmartPay to 1,200+ apps
* New - Uncanny Automator integration: use payment events as triggers in Automator recipes
* New - WPFunnels integration: redirect customers to a funnel page after payment
* New - LearnDash, Tutor LMS, LifterLMS: enrol customers in courses on payment; revoke on cancellation
* New - WP User Registration: auto-create WordPress accounts with role assignment on payment
* New - Fluent Support: open a support ticket automatically on payment completed or failed
* New - FluentCommunity: add buyers to community spaces on payment; remove on cancellation
* New - Wishlist Member: grant membership levels on payment with per-form override
* New - Restrict Content Pro: create memberships on payment; expire on cancellation
* Fix - Stripe no longer conflicts with Divi and Elementor; checkout modal renders above page builders
* Fix - FluentCRM and MailerLite: contacts and subscribers now added correctly on payment
* Fix - Zapier webhook payload expanded with all payment fields; Catch Hook auto-detects them

= [3.2.0] =
* New - Slack: real-time payment notifications in your Slack channels
* New - Telegram: instant payment alerts via Telegram Bot
* New - Twilio SMS: customer and admin SMS on payment events
* New - Google Sheets: log every payment to a spreadsheet automatically (no OAuth needed)

= [3.1.0] =
* New - AI / MCP: connect Claude, Cursor, and any MCP agent to SmartPay data (15 tools)
* New - Generic webhooks: HMAC-signed delivery with automatic retry and a delivery log
* New - Bulk coupon generation with custom prefix/suffix and CSV export

= [3.0.1] =
* New - Authorize.Net gateway
* Update - Gateway list consolidated under Settings → Gateways
* Fix - Minor PHP warnings on forms

= [3.0.0] =
* New - Redesigned admin UI, native payment forms, invoices, subscriptions, and manual payment gateway

= [2.9.0] =
* New - Pro reports: revenue, forms, subscriptions, goals, and recovery tabs
* New - Anti-spam checkout protection and tax calculation
* New - Email settings management page
* Security - Direct file access protection across all PHP files

= [2.8.0] =
* Fix - Security and payment method integration issues
* Update - UI improvements and documentation links

= [2.7.0] =
* Remove - Paddle direct checkout (policy change); Paddle Billing replaces it

= [2.6.0] =
* New - Mollie, Paytm, toyyibPay gateways
* New - Additional charges and billing cycles on forms and products

= [2.5.0] =
* New - Razorpay gateway
* New - PHP 8 support

= [2.4.0] =
* New - MailerLite integration
* Fix - Stripe billing, Zapier API, subscription table creation

= [2.0.0] =
* New - Subscriptions (PayPal, Stripe, Paddle)
* New - FluentCRM, MailChimp, AffiliateWP, Pabbly, Zapier integrations

= [1.1.0] =
* New - Paddle, Stripe, bKash gateways

= [1.0.0] =
* Initial release
