*** Dodo Payments for WooCommerce Changelog ***

2026-10-16 - version 0.6.1
* Fix: a subscription's first payment no longer creates an extra renewal order, so each new subscription has one paid order per payment. Redelivered payment webhooks no longer create duplicate renewal orders either.
* Fix: webhook signatures are verified against the raw request body. Sanitizing the body first altered legitimate payloads containing characters such as `%`, `<`, repeated spaces or line breaks, so they failed verification.
* Fix: webhooks with an invalid signing key or signature are now rejected with a 401 in live mode as well as test mode, so Dodo Payments retries the delivery instead of treating it as successful.

2026-08-21 - version 0.6.0
* Feature: configure the hosted checkout's return URL from the settings page, with `{order_id}`, `{order_key}` and `{order_number}` placeholders. Leaving it empty keeps the WooCommerce order received page.
* Feature: optionally send customers who abandon the hosted checkout back to your store -- to the order pay page so they can retry, to the cart, or to a URL of your choosing. Off by default, matching the Checkout Sessions API.
* Feature: optionally finalise the order's details when the checkout session is created rather than letting the hosted page collect what is missing. Requires a WooCommerce checkout that captures the full billing address; the plugin checks the order first and fails with a message naming any missing fields rather than passing a request the API will reject.
* Feature: require only the zipcode at the hosted checkout, via the API's minimal address option.
* Feature: set the hosted checkout's theme and language from the settings page.
* Feature: restrict accepted payment methods, pin a billing currency, force 3-D Secure, show saved payment methods, and set an INR e-mandate minimum.
* Feature: ask customers up to five extra questions on the hosted checkout, with text, number, email, URL, date, dropdown and yes/no field types.
* Feature: optionally send the order's billing phone number and company to the hosted checkout so customers are not asked for them twice. Both are off by default, matching the Checkout Sessions API defaults. The company is sent only on orders that also carry a tax ID, which Dodo Payments requires alongside a business name.
* Enhancement: the settings page is now grouped into collapsible sections, and remembers which ones you left open.
* Enhancement: a "Reset to defaults" button on the settings page restores every checkout option and feature flag, keeping the general settings, API keys and webhook signing keys.
* Migration: checkout sessions now use the stackable `discount_codes` field in place of the deprecated `discount_code`.
* Dev: new `dodo_payments_checkout_session_request` filter over the entire checkout session request body, for the API fields the settings page does not expose.
* Dev: new `dodo_payments_checkout_return_url` filter to override the return URL per order.

2026-07-14 - version 0.5.0
* Feature: control the hosted checkout's feature flags (currency selection, discount codes, tax ID, phone number collection, customer-editable fields, and more) from the plugin settings page. Flags left at "Default" are omitted from the checkout session so Dodo Payments keeps control of their defaults.
* Dev: new `dodo_payments_checkout_session_feature_flags` filter to override feature flags per order.

2026-05-27 - version 0.4.1
* Fix: trim checkout session billing/customer fields and send blanks as null so hosted checkout can collect missing values.

2026-05-19 - version 0.4.0
* Migration: Switched payment and subscription creation from the deprecated `POST /payments` and `POST /subscriptions` endpoints to the unified Checkout Sessions API (`POST /checkouts`).
* Enhancement: WooCommerce order id (and subscription id, when applicable) are now passed as Dodo Payments checkout-session metadata so webhooks can resolve the originating order even before the first payment id is known.
* Enhancement: Webhook handlers now lazily create the local order/subscription mapping from the metadata on the first inbound event, since checkout sessions no longer return `payment_id`/`subscription_id` at creation time.

2026-04-17 - version 0.3.5
* Fix: truncate product names to 100 characters to prevent API validation errors

2025-07-09 - version 0.3.1
* Fix: use plain permalink structure for webhook url which is more widely supported

2025-06-18 - version 0.3.0
* Feature: Add comprehensive subscription support
* Feature: Subscription product management and synchronization
* Feature: Subscription lifecycle management (cancel, suspend, reactivate)
* Feature: Webhook handling for subscription events and renewals
* Feature: Database mapping for WooCommerce and Dodo subscription IDs
* Feature: API integration for subscription operations
* Enhancement: Improved product synchronization for subscription vs regular products
* Enhancement: Enhanced webhook processing with dedicated handlers

2025-05-19 - version 0.2.0
* Feature: Add support for coupon codes(Fixed percentage type only).
