Anka Quote Basket for WooCommerce — full changelog
==================================================

readme.txt keeps the current release and one version back, as recommended for
the WordPress.org Plugin Directory. Every older entry is kept here.

= 4.7.0 =
* Quote lifecycle: customer accept/decline via signed link (GET does not write; POST + nonce does).
* Optional validity days on priced send (default 0 = never expire). Expired is computed; no WP-Cron.
* Manual WooCommerce order from an accepted quote (pending payment, quoted prices; currency mismatch blocked).
* Shared B2B document layout for priced PDF, customer email, and the response page (store logo/accent/footer).
* Default priced-email template gains Review and respond when customer response is on; saved custom quoted_body is not overwritten.

= 4.6.0 =
* Appearance: Theme button style (match theme Woo buttons; plugin skin CSS skipped).
* Button placement settings for single product and shop/list; floating button side + offset.
* Settings: compact select dropdowns with hints for appearance placement options.
* Hardening: Apache 2.4-compatible temp PDF directory denial; search-filter mismatch logging under WP_DEBUG.

= 4.5.2 =
* Compatibility: tested with WordPress 7.1 (RC3) and WooCommerce 11.0. No functional changes.

= 4.5.1 =
* Hotfix: include `includes/class-product-meta.php` in the packaged release (required by 4.5.0 but omitted from the SVN tag).

= 4.5.0 =
* Per-product catalog rule: tri-state control in the product editor's Advanced tab (Use store catalog rules / Force quote catalog / Force normal purchase), stored in `_ankaquba_catalog_mode`.
* "Force normal purchase" also hides the Add to Quote button for that product; "Force quote catalog" brings a product into scope regardless of the category list, but never turns the global Hide price / Hide Add to Cart switches on by itself.
* Variations resolve to their parent product's rule, so the setting is made once on the variable product.
* Inherit is stored as the absence of the meta row, not as a saved "no", so toggling the store-wide rules later cannot change the meaning of products saved earlier.
* New filter `ankaquba_product_catalog_mode`.
* Uninstall now removes `_ankaquba_catalog_mode` from products when "delete data on uninstall" is enabled.
* Quote form privacy consent (default on): notice + required checkbox; one Consent page setting (your page, or WordPress privacy policy when empty). Acceptance stored on the quote (`_ankaquba_consent`, `_ankaquba_consent_at`).
* Appearance: Add to Quote control style (Button or Text link) and button look (Solid or Outline). Outline uses the accent color; defaults match the previous dark pill so existing stores look unchanged.
* Settings screen: vertical sidebar navigation with icons and an active accent marker.
* Settings footer: Save settings + Reset to defaults (confirm; restores built-in defaults, does not delete quotes). Rounded form fields.
* Settings UI language: two-column field rows with dividers, accent toggle switches, radio choice cards, panel titles, and accent-colored Save.
* Incoming quotes list and edit screens use the same admin design language as Settings (accent surfaces, rounded fields, status badges, accent primary actions).

= 4.4.0 =
* Catalog mode: Hide price (independent of Hide Add to Cart), optional replacement label, role exemptions, and product-category scope.
* Admin priced response: set unit prices on an incoming quote and email a priced PDF offer (status Quoted). No checkout/order conversion.
* Incoming quotes: filter by status, search by email/phone, sortable status, and CSV export (formula-injection safe).
* Email settings UX: accordion sections (admin / customer confirmation / priced quote / PDF) with Insert placeholder pickers.
* Assets split into core / catalog / form bundles; form CSS/JS load only on form pages (no FOUC).
* Catalog add-to-quote script also loads on the front page / home and on pages that embed product shortcodes or blocks (buttons were visible but clicks did nothing).
* Developer hook API (19 hooks): button, item data, rate limit, quote lifecycle, email/PDF filters, catalog/hide-price filters, priced-quote actions.
* Readme: catalog-mode / enquiry positioning for end users (display name and slug unchanged).

= 4.3.1 =
* Catalog mode (`hide_add_to_cart`): keep the WooCommerce add-to-cart form so variable option selectors and quantity inputs still render; only the purchase button is hidden. Buying is refused with `woocommerce_add_to_cart_validation` (classic cart and Store API).
* Quote form: request a fresh nonce immediately before submit so full-page caches cannot serve an expired token. Stale nonces are still rejected.
* Classic themes: avoid the full-viewport CSS breakout shifting the quote page when the shortcode already sits in a full-width content row (Elementor pages keep the breakout).

= 4.3.0 =
* Every global name now uses the distinct `ankaquba` prefix instead of the generic `woo_quote`: constants (ANKAQUBA_*), classes (Ankaquba_*), the ankaquba_settings option, the ankaquba_quote post type, _ankaquba_* meta keys, AJAX actions, nonces, CSS classes and the [ankaquba_form] / [ankaquba_menu] shortcodes.
* Automatic one-time migration on upgrade: settings, stored quotes, their meta and the shortcodes inside your pages (including Elementor content) are moved to the new names. Baskets saved in a visitor's browser are carried over too. Anything the rewrite cannot reach is reported in an admin notice.
* Uninstall now also clears data left by pre-4.3.0 versions.

= 4.2.1 =
* Security: marking a quote as viewed is no longer done while the edit URL loads. It is now an explicit POST protected by a nonce plus a capability check, so the status cannot be changed through a forged request.
* All shortcodes now use the plugin prefix. Unprefixed aliases were removed to avoid collisions with other plugins.
* Settings screen placeholder chips moved from a global function into the settings class.
* Admin screen routing input is sanitized before comparison.

= 4.2.0 =
* Distinctive name and slug: Anka Quote Basket for WooCommerce.
* Admin CPT styles moved to enqueued CSS (no echoed style tags).
* Admin notices limited to relevant screens.
* Translation .po/.mo/.l10n.php removed; translations come from translate.wordpress.org.

= 4.1.3 =
* Settings > Email: placeholder tokens now insert into the field they are shown under (subject/body, admin/customer) instead of always the admin subject field.

= 4.1.2 =
* Readme: bump "Tested up to".

= 4.1.1 =
* Settings > Email: editor and preview now sit side by side (was stacked) for easier comparison.

= 4.1.0 =
* Text domain aligned with the plugin slug. Post type, options, AJAX actions and CSS classes kept for compatibility.

= 4.0.8 =
* Settings > Email: live HTML preview for admin and customer templates (sample data).
* Load built-in into editor / Clear (use built-in) actions and Built-in vs Custom badges.

= 4.0.7 =
* Unify quote CTA buttons (product, catalog, submit): black + accent border + white text; same hover.
* Fix submit button text disappearing on hover under theme/Elementor overrides.

= 4.0.6 =
* Floating quote button: hide when the quote list is empty; show again when items are added.

= 4.0.5 =
* Floating quote button: restore prominent white ring/glow; stronger white pulse on nudge.

= 4.0.4 =
* Auto floating quote list button (default on): live count + nudge.

= 4.0.3 =
* Front-end: fill full viewport width; unblock Elementor overflow clipping.
* Compact quantity stepper against theme width:100% rules.

= 4.0.2 =
* Declare WooCommerce HPOS and Cart & Checkout Blocks compatibility.

= 4.0.1 =
* Root license.txt; settings capability manage_woocommerce; Dompdf hardening; English placeholders.

= 4.0.0 =
* Global name prefixing pass.
