= 6.9.9 - 20/07/2026 =
Fixed: SdI credit notes sent via POP are now correctly marked as sent after a successful submission; previously the status button did not appear after sending because the document UUID was stored on the parent order but read from the refund order.

= 6.9.8 - 16/07/2026 =
Security: All admin AJAX actions now require a valid nonce and the manage_woocommerce capability; background cron calls continue to work without a nonce as before.
Fixed: SDI invoice sending no longer remains blocked after the first create/send attempt; the internal concurrency lock is now always released so later manual or scheduled sends can run normally.
Fixed: KSeF invoice status check no longer crashes with a PHP notice when the API response does not include a reference number; the variable is now always initialised before use.
Fixed: Credit notes that reuse the invoice numbering series now pick the first free invoice number correctly; previously, when separate credit-note numbering was disabled, a credit note could reuse an already assigned invoice number instead of continuing the sequence.
Fixed: The edit button for next credit-note numbers now correctly unlocks the field for manual input; previously the field stayed read-only even after clicking the pencil icon.
Improved: PMPro and Cozmos admin order/payment screens now handle generated document cache more clearly: cached XML/PDF files are shown in a dedicated read-only panel and are cleared automatically when billing data changes, so regenerated documents stay aligned with the latest saved data.
Improved: On Cozmos PMS forms and account pages, store admins now see an explicit POP warning when the Paid Member Subscriptions module "Tax & EU VAT" is not active, clarifying why POP fiscal billing fields are unavailable.

= 6.9.7 - 06/07/2026 =
Fixed: Bulk CSV order download no longer crashes with a date parse error; previously the export failed with a fatal error when order dates were stored as Unix timestamps instead of formatted strings.
Fixed: Bulk XML download now generates invoices with complete customer data and order lines; previously documents created through the batch downloader were missing customer name, address, VAT number, and product lines because the admin list index does not store the full order payload.
Fixed: Batch XML generation no longer fails with a server-side API error for customers without an SDI code; the SDI field is now always sent as a string, preventing a null type error on the POP API.
Fixed: A crash in the XML payment summary calculation is resolved; line item totals coming from the API response are now cast to numbers before arithmetic, preventing a PHP 8 TypeError when the values arrive as strings.

= 6.9.6 - 06/07/2026 =
Added: Shops can now activate Zoho (via POP) as their exclusive invoice channel from the Integrations page, with readiness checks from the POP account and dedicated manual/automatic document sending for invoices and credit notes.
Fixed: Zoho credit notes are now correctly marked as sent after a successful sync; previously the document was created in Zoho but the order status was not updated.
Fixed: Zoho document sync now respects the sandbox/live environment setting; previously Zoho always sent to the live Zoho account even when the POP sandbox mode was active, and sandbox dry runs now return a clear confirmation instead of an error.

= 6.9.5 - 25/06/2026 =
Added: German shops can now generate and receive ZUGFeRD documents — the hybrid PDF containing embedded XML is created via the POP API and automatically attached to the completed order email; XML and standard PDF actions are replaced by a single ZUGFeRD download button in the admin order list and order detail.
Added: German shops can now download all three ZUGFeRD artefacts — hybrid PDF, standard PDF, and embedded XML — as a single ZIP archive directly from the admin order list and order detail; the bundle is served from the local cache and consumes no additional API credits.
Added: A dedicated ZUGFeRD section is now visible in the settings panel for German shops configured on the ZUGFeRD corridor, showing credit usage information for each document bundle generated.
Fixed: Resending a completed order email from the WooCommerce order detail no longer deletes the cached document files for that order.
Fixed: The invoice/document admin list now loads correctly even when WooCommerce refunds are present, and recent documents from different providers are ordered more reliably together in the same view without early pagination cutoffs.

= 6.9.4 - 15/06/2026 =
Added: Polish shops can now send KSeF invoices directly from the WooCommerce order detail; the invoice is transmitted to the KSeF system via the POP API and the assigned KSeF reference number is stored on the order. Auto-send on order status change and manual status check are also available.
Added: Invoice numbering can now be restarted intentionally from a chosen value in Numeration settings, even when keeping the same prefix, making it easier to reset test sequences before going live.
Fixed: After a manual numbering reset, older documents in the same invoice series no longer force the next number forward; duplicate protection now applies only to documents created after the reset.
Added: Manual numbering reset is now available for the receipt series as well, with the same boundary logic as for invoices.
Fixed: The manual numbering reset checkbox was silently ignored when saving settings; the reset now applies correctly and the sequence restarts from the chosen value.
Fixed: Receipt numbering now always uses its own separate sequence starting from 1; the previous option to share the invoice counter by setting the receipt number to zero has been removed as it produced incorrect document numbering.
Fixed: Fatture in Cloud automatic sending now correctly uses the trigger status configured for each document type — invoices use the invoice trigger and receipts use the receipt trigger; previously both always checked the invoice trigger, causing receipts (and invoices on non-completed triggers) to be skipped silently.
Fixed: Receipt orders processed through payment gateways that auto-complete orders (e.g. PayPal, Stripe) are now correctly scheduled for automatic Fatture in Cloud sending; previously these orders were skipped in receipt-only mode or when the receipt trigger differed from the invoice trigger.
Fixed: Receipt documents (corrispettivi) now always carry the order creation date as the fiscal transaction date, in all sending flows (automatic batch, immediate on status change, and manual); invoices continue to use the emission date as required by SDI sequential numbering rules.
Fixed: When the batch processes multiple receipts in sequence, the success message is no longer duplicated for each order; each document now reports its own single confirmation line.
Fixed: Fatture in Cloud automatic sending now recovers missed invoice and receipt orders more reliably when the first background run is delayed, including shops using `processing` as the trigger status.
Fixed: Orders still missing `_invoice_sent` are now picked up correctly by the Fatture in Cloud recovery cron, preventing valid automatic documents from being skipped silently.

= 6.9.3 - 09/06/2026 =
Added: When deactivating the plugin, a feedback modal now appears asking for an optional reason and comment before proceeding; the information is sent to POP to help improve the product, and deactivation always completes regardless of whether feedback is provided.

= 6.9.2 - 05/06/2026 =
Fixed: The temporary order filter data is no longer loaded on every page of the WordPress admin; on large stores this option could reach several megabytes and was causing slow database queries and site crashes under normal traffic.
Improved: Fatture in Cloud diagnostic log now traces the full scheduling and execution flow for both invoices and receipts, including order status transitions, payment method, and the reason when an automatic document send is skipped; requires WP_FATT_CLOUD_LOG enabled.
Fixed: Webhook delivery via n8n connector (e.g. Zoho) now works correctly — the connector response is recognised and passed through instead of being treated as invalid XML, both when triggered manually and via scheduled cron.
Fixed: Saving webhook settings without making any changes no longer shows a false error message; a save with no modifications now correctly returns success.

= 6.9.1 - 03/06/2026 =
Added: A dedicated "Ricevute/Corrispettivi" automation section is now available in Fatture in Cloud settings, with its own trigger status and enable/disable toggle independent from invoice automation; receipt documents are sent immediately when the selected order status is assigned.
Added: Receipt orders are now visible in the invoice admin list and show the document data section inside the order detail when Fatture in Cloud is active, regardless of order status.
Added: Manual upload of receipt documents is now always allowed from the order detail, regardless of the order status.

= 6.9.0 - 27/05/2026 =
Fixed: PMPro order items now report the correct unit price and VAT rate in the XML payload; when the PMPro global `$pmpro_default_country` is not initialised during API-based XML generation the rate lookup returned 0, causing `unit_price` to show the gross amount instead of the net and `rate` to show `0.00`; `taxRate()` now falls back to calculating the aliquota directly from item totals (`total_tax / subtotal × 100`) for non-WooCommerce providers when the provider lookup returns zero, and the strict integer comparison `0 === $vat` in `calcUnitPrice()` is replaced with `0.0 === floatval($vat)` so the safety fallback triggers correctly when `$vat` is the string `"0.00"`.
Added: SDI and PEPPOL integration settings now display Live and Sandbox environments as separate labelled sections, each with its own status indicators; PEPPOL identifier, endpoint value, UUID, address, city and zip-code fields are shown for both environments independently.
Changed: Two new static helpers `Integrations::isSdiPopIntegrationActive()` and `Integrations::isPeppolIntegrationActive()` centralise the live-or-sandbox activation gate; all call sites in `Integrations`, `InvoiceApi`, `PeppolApi` and `Wizard` now use these helpers instead of raw `get_option` comparisons.
Changed: `getSdiPOPIntegrationData()` and `getPEPPOLPOPIntegrationData()` return objects now expose separate `live_integration` / `sandbox_integration` boolean flags (plus `live_signature`, `live_storage`, `sandbox_signature`, `sandbox_storage` for SDI and sandbox PEPPOL identifier fields) so UI and consumers can distinguish the two environments without re-reading options.
Fixed: Various admin CSS adjustments — added `min-height` to inputs, action buttons and table-cell title column; corrected `line-height` on action icon links for refund and order rows.

= 6.8.9 - 25/05/2026 =
Fixed: Fatture in Cloud invoice sending now refreshes cached VAT rates safely before using standard-rate IDs, preventing stale shipping tax mappings from blocking document creation after VAT changes in Fatture in Cloud.
Fixed: removed radio input and checkbox style that conflicted with WP 7 styling

= 6.8.8 - 19/05/2026 =
Added: Admin notifications can now be shown or hidden by platform, so messages can target only WordPress or external platform contexts such as Shopify.
Added: Shops configured for Poland now generate KSeF XML on the dedicated route and keep the saved XML files in a dedicated local directory.
Fixed: Poland shops now show only the native actions expected by their configured route, and private KSeF customers now see PDF-only document actions instead of PEPPOL/UBL XML options and notices.
Added: New environment setting (live/sandbox) in account panel to send the environment flag in POP API requests; default is "live". The environment is shown in the admin menu title next to the plugin name.
Added: New ReverseChargeSettings class to centralize conditional display logic for reverse-charge fields; ref_norm_rc (tax rule reference) is now shown only in Italy, San Marino and Spain, while other EU countries and extra-EU contexts show only nature_rc.
Fixed: Poland shops now show reverse-charge fields with KSeF-ready labels and accepted values, while unused private and tax-reference fields are hidden and no longer saved on orders.
Fixed: Reverse-charge settings in WooCommerce, PMPro and Cozmos now align with the new conditional logic, saving ref_norm_rc only when the field is displayed and avoiding empty values on orders.
Fixed: PMPro checkout now saves reverse-charge metadata only when nature is not empty, preventing stale empty values on subsequent order processing.
Added: New extra-EU zero-tax handling: when cart contains items shipped to non-EU countries, the reverse-charge process now applies the 0% tax rate without requiring reverse-charge validation, supporting export scenarios where VAT is not applicable.
Fixed: Poland KSeF context now hides SDI fields and Tax Code like PEPPOL does, and the address format is updated to include invoice_type and vat_number correctly.
Changed: Reverse-charge settings UI is now simplified, removing redundant country-specific fields that are handled by the new centralized logic.

= 6.8.7 - 08/05/2026 =
Fixed: Failed include RefundOrderItem.php

= 6.8.6 - 07/05/2026 =
Fixed: PMPro admin order save and invoice sent/undo actions now guard against recursive re-entry on the same order during internal meta/XML persistence, preventing memory exhaustion, stalled redirects and duplicate nested processing on `pmpro_updated_order`.
Fixed: PMPro refunded orders now keep the original invoice row and the generated credit note as separate POP table documents; admin search/action routing now resolves the correct refund document context for XML/PDF generation, local cache reuse and bulk file handling instead of collapsing both documents onto the same source order id.
Fixed: PMPro native SDI/PEPPOL actions now resolve invoice vs credit-note document context explicitly, so a UUID saved for the original invoice no longer disables send/state actions on the PMPro refund credit-note row that shares the same source order id.
Fixed: Admin document search is now provider-aware; when a specific provider is selected, direct order-id lookup and filtered search results query only that provider instead of scanning every registered provider.
Fixed: Fatture in Cloud line-item VAT-type resolution now prioritizes the XML/order fiscal `Natura` before Italian `0%` fallback mappings, so cases such as `N2.2` no longer degrade to the generic domestic N4 path when the normative reference is missing; targeted helper tests cover exact, ambiguous and fallback cases.
Fixed: PMPro checkout no longer blocks company/freelance submissions with browser error `An invalid form control with name='billing_tax_code' is not focusable` when tax code is disabled; PMPro now aligns CF required/visibility handling with the WooCommerce flow and clears stale browser custom-validation state when the field is hidden or excluded from validation.
Fixed: Credit-note XML refund assembly no longer assumes WooCommerce-only parent-order lookups; refund data building now resolves the parent order through the active provider and hardens fee-item data access for non-Woo provider adapters, improving compatibility for provider-based refund flows.
Changed: Local frontend/admin asset versioning now uses the real file modification time for plugin-managed scripts and styles, including PMPro and Cozmos checkout assets, reducing stale-browser/cache issues after JS/CSS updates without requiring a plugin version bump.

= 6.8.5 - 28/04/2026 =
Fixed: Shipping VAT-rate resolution is now hardened across standard invoices and shipping refund / credit note flows; shipping items can now recover their tax rate and tax-rate id from item tax data when `tax_class` is empty, location matching now prefers city-specific rates over generic country-wide matches, and targeted tests cover the shared resolution path.

= 6.8.4 - 27/04/2026 =
Changed: POP API requests that already send `license_key` in the JSON body now also send the same value in the `X-API-Key` header for channel, wizard, addon-allowlist, and document-generation endpoints while keeping backward-compatible body payloads unchanged.
Fixed: PMPro XML auto-saving now skips recursive re-entry when the current request is already the internal `format=xml` generation request for the same order/provider, preventing self-triggered loops during internal XML generation on shared POP/site domains.
Fixed: Invoice-number formatting/build fallback no longer degrades to the order ID when the raw progressive is missing during interrupted status-change/save flows; formatted-number generation is now centralized, recovery prefers the stored `order_number_invoice` or a valid parse from the existing formatted value, and missing progressives now fail explicitly with logs instead of persisting the order number as the visible invoice number.
Changed: PMPro legacy formatted-number fallback is aligned with core and no longer uses the order ID as a surrogate invoice number when no valid progressive is available.
Fixed: Greece VIES checks now normalize the member-state code from `GR` to `EL` in the shared VIES path, so Greek VAT numbers entered/stored with checkout country `GR` are validated with the expected VIES country code; updated core helpers and validator flow in `src/Functions/Utils.php` and `src/WooCommerce/Fields/InvoiceFields.php`, with targeted coverage in `tests/ViesCountryCodeTest.php`.
Changed: The account setup wizard popup `otpWindow` now sizes itself dynamically from the opener browser window instead of using a fixed width, targeting about `80%` of the available width and centered positioning for better adaptation across screen resolutions; updated `assets/js/wizard.js` and regenerated `assets/js/wizard.min.js`.

= 6.8.3 - 09/04/2026 =
Fixed: `processFileBatch()` now resolves the correct order provider from the stored batch payload and skips orphaned records safely, avoiding fatal errors when bulk XML data contains non-WooCommerce entries or deleted orders.
Changed: Bulk XML download gating is now aligned between UI and runtime; the feature remains Growth+, the AJAX endpoint now enforces the same rule server-side, and paid-plan users below Growth see an explicit `From Growth` badge instead of the generic paid-only label.
Fixed: XML directory saving is now enabled from the Basic plan as intended, matching the settings UI and restoring actual file creation for `createXMLOnProviderOrderCompleted()`.
Changed: XML auto-saving is now provider-aware in core and is wired for WooCommerce, PMPro and Cozmos payment flows, so completed-provider orders can save XML files without relying on WooCommerce-only assumptions.
Changed: Added localized `From %s` plan badge strings in core language catalogs and regenerated compiled translations.

= 6.8.2 - 07/04/2026 =
Fixed: `transferee_client.personal_data.tax_id_vat.country_id` and `transferee_client.place.country_id` now receive the customer country reliably during XML/PDF payload assembly; `CreateXml` initializes `$transfereeCountryId` before the payload is built, avoiding undefined-variable notices and empty country values in generated documents.
Changed: PMPro order billing resolution is now more defensive for address, city, state, postcode and country, with fallback lookup across POP order metas (`billing_*`), WordPress user metas and legacy PMPro user metas (`pmpro_b*`) when the `MemberOrder->billing` object is incomplete.

= 6.8.1 - 07/04/2026 =
Fixed: PMPro bridge now restores pre-6.8.0 addon bootstrap timing by firing `wc_el_inv-after_init` after plugin bootstrap, so PMPro callbacks are registered before checkout/gateway order flows emit their hooks.
Fixed: PMPro addon filter loading is now merged explicitly across `filtersAlways`, `filtersFront`, `filtersAdmin`, and `filtersAjax`, preventing loss of shared `inc` hooks such as invoice/date assignment and fiscal-meta sync.
Fixed: PMPro order success handling now backfills missing POP fiscal metas (`billing_choice_type`, `billing_invoice_type`, `billing_sdi_type`, `billing_vat_number`, `billing_company`, `billing_tax_code`) even when the success transition happens later via Stripe/webhook and the original checkout `POST` is no longer available.
Fixed: When PMPro front-end document-type choice is disabled, the effective default now becomes `invoice` instead of inheriting the receipt-oriented field default.
Fixed: PMPro provider billing-company resolution now prioritizes the POP order meta `billing_company` over stale PMPro billing object values, so updated company names entered at checkout are reflected consistently in orders and generated documents.
Changed: PMPro Council Directive price-label formatting now uses the current site language instead of the account country, appending `+IVA` only for Italian and `+VAT` for all other languages.
Changed: Core helper `getCurrentLanguage()` is now normalized and WPML-aware, using `isWpmlActive()` with `ICL_LANGUAGE_CODE` when available and otherwise falling back reliably to the current WordPress locale.
Added: Targeted PMPro/WPML language-label tests covering WordPress locale fallback and WPML current-language precedence.
Added: Centralized diagnostic log helpers in core for shared path resolution, bootstrap, write-status tracking and protected admin log viewing.
Fixed: Fatture in Cloud, Aruba and SdI via PEC now prepare their event-log directory/file on activation and surface path/permission issues immediately in addon settings.
Changed: Addon event logs are now opened through a nonce-protected admin endpoint instead of direct public `/wp-content/*.log` URLs, reducing false 404s caused by cache, rewrite rules or WAF policies.
Added: Targeted diagnostic-log tests covering bootstrap, write flow, early conflict detection and protected viewer URL generation.
Added: Unified POP API overquota payload (`pop_api_overquota`) with shared normalization helpers, localized titles/messages/CTA labels, and admin/order persistent state stored in the global option `wc_el_inv_pop_api_overquota_state`.
Fixed: POP API overquota business blocks no longer terminate with legacy `wp_die()` in programmable flows; AJAX/admin and addon consumers now receive a structured payload, while `_blank` document generation renders a dedicated HTML fallback page.
Changed: Overquota handling is now aligned across core and indirect addon consumers (`getXmlFromOrder() -> CreateXml -> popApi()`), with shared detection/extraction helpers in PHP and a single SweetAlert2 renderer in `assets/js/admin.js`.
Fixed: Core AJAX flows and Fatture in Cloud, Aruba, and SdI via PEC addon UIs now intercept `pop_api_overquota` before generic error handling and render the shared dialog instead of degrading to “invalid XML” or generic API errors.
Added: Persistent overquota notices on POP XML settings (`page=wc_el_inv-options-page&tab=xml`) and WooCommerce order screens, dismissible per page view but automatically shown again until the global overquota state is cleared on a successful document flow.
Fixed: Overquota business copy is now clearer across reason-code states, including explicit cause/unblock guidance for plan limit, disabled overquota, settlement required, cap reached, payment-method and overdue-balance cases.
Fixed: Updated translation catalogs (`el-inv.pot`, `it_IT`) and rebuilt the `it_IT` `.mo` file for the refined overquota titles/messages, CTA labels (`Open POP`, `Contact support`) and step label (`Next step`).
Added: Extended CloudApi quota/overquota test coverage for normalized payloads, global option persistence/cleanup, admin notice rendering, settlement-required branching and unpaid-overquota fallback CTA mapping.
Fixed: PMPro Council Directive tax hooks now initialize correctly even when the PMPro bridge is loaded after `init`, restoring `pmpro_format_price`, `pmpro_tax` and `pmpro_vat_by_country` on checkout.
Added: Targeted bootstrap-hardening coverage for the PMPro Council Directive snippet when it is included after `init`.
Fixed: Cozmos PMS admin payment form no longer fatals when `pms_in_tax_eu_vat_enabled()` is unavailable; the bridge now falls back to local tax settings when the PMS VAT helper is not loaded.
Added: PMPro order view (`pmpro-orders` view page) now shows read-only POP “Invoice Fields” and “Invoice Data” sections after the main order details, so saved billing/fiscal data is visible without entering edit mode.
Fixed: PMPro and Cozmos now align saved fiscal meta (`nature_rc`, `ref_norm_rc`, `order_vies_check`) more closely with the WooCommerce provider flow, including `company_no_vies` handling and San Marino support during order/meta persistence.
Fixed: Cozmos VIES checks now call the shared validator with the correct VAT/country argument order, avoiding false negatives that could block the correct fiscal meta assignment.
Changed: Legacy `stripTags()` has been removed and replaced by explicit text helpers that separate HTML-to-plain-text extraction from SDI and PEPPOL normalization policies.
Changed: SDI text normalization now uses deterministic ASCII-safe business tokens for disallowed symbols (`& -> AND`, `% -> PCT`, `# -> NUM`, `€ -> EUR`) together with stronger transliteration for accented and extended Latin characters.
Added: Targeted text-normalization tests covering HTML cleanup, SDI-safe replacements, extended Latin transliteration, control-character filtering and conservative PEPPOL business-text preservation.
Fixed: SdI via PEC filename progression is now centralized and persisted in the visible order custom field `invoice_progressive_file_number`, with a new unique 5-character code reserved on each real transmission and reinvio.
Changed: Local `ProgressivoInvio` generation has been removed from the plugin XML payload so SdI transmission progressives remain owned exclusively by the API.

= 6.8.0 - 13/03/2026 =
Fixed: Registered `wc_el_inv_swal2` globally in admin so `wc_el_inv_admin` dependencies resolve correctly outside POP settings pages without forcing SweetAlert2 enqueue on every admin screen.
Fixed: Restored `POP Checkout Fields` block visibility in the block inserter by registering `pop-checkout-block-editor` before `register_block_type()`.
Fixed: Simplified POP checkout block editor dependencies to valid Gutenberg/Woo Blocks handles, removing missing dependency issues that prevented block loading.
Fixed: Hardened `assets/js/pop-block.js` against missing `wc_el_inv_admin` / `wc_el_inv_invoice` globals by using localized fallback data for messages and field positioning.
Changed: Free-plan premium settings now remain visible with disabled UI, including `Paid only` badges, while server-side save and runtime enforcement prevent unavailable features from being used on `free`.
Fixed: Free-plan endpoint cards now show an explicit upgrade message with plans CTA, with updated locale catalogs.
Fixed: Premium runtime enforcement now blocks VIES, reverse charge, XML directory saving, automatic sending and webhook execution on `free` while preserving stored values for paid-plan reactivation.
Changed: Membership entrypoints `PMPro` and `Cozmos` can now coexist without forced mutual reset, with integration bootstrap updated to support both providers in the same installation.
Fixed: PMPro and Cozmos addon bootstrap now supports late loading after `init`, restoring correct field/provider initialization after moving `wc_el_inv-after_init` to the proper lifecycle point.
Fixed: Provider enqueue is now re-run after membership addon loading so late-loaded providers are registered before downstream order/tax flows use them.
Fixed: Composer autoloaders for core and local addons now use explicit unique suffixes, preventing class-name collisions when multiple POP addons are loaded together.
Changed: Plan-based gating has been realigned for `basic`, `growth` and `pro` across settings, runtime checks and integration cards, including `Paid only` visibility, upgrade messages, country-specific PEPPOL notices and dependency notices for Fatture in Cloud receipts/warehouse cards.
Fixed: `basic` now correctly enables credit notes, XML directory, reverse charge/VIES, POP SdI/PEPPOL automations, webhooks and activation of `SdI` / `PEPPOL`, while unsupported endpoints show the explicit upgrade message.
Fixed: `growth` and higher plans now consistently show the PEPPOL country-specific notice whenever the plan allows activation but the configured country is not eligible.
Added: Pro-only dependency notices for `Fatture in Cloud (receipts)` and `Fatture in Cloud (warehouse management)` when the base FIC integration is not active, with localized strings across supported languages.
Fixed: `to/*` addon bootstrap hardening now covers late loading after `init` for Fatture in Cloud, Aruba, SdI PEC, FIC Receipts and FIC Stock, including immediate execution of internal `init` jobs registered via addon loaders.
Added: Targeted tests for post-`init` addon loader behavior and test bootstrap action stubs; full local suite passing.
Fixed: Fatture in Cloud payment-account handling now avoids undefined-property warnings on missing `payAccountID` mappings and re-validates payment account data after filters before building the API payload.

= 6.7.5 - 11/03/2026 =
Fixed: SweetAlert2 admin assets are now loaded only on POP plugin pages, preventing conflicts with other admin plugins that use different SweetAlert2 versions.

= 6.7.4 - 11/03/2026 =
Changed: admin SweetAlert2 confirm and notification buttons now use plugin-consistent styling
Fixed: PMPro applies stamp duty after rivalsa so stamp duty does not affect rivalsa calculation
Changed: PMPro admin order shows stamp duty and rivalsa values as read-only reference fields with a checkout consistency notice
Fixed: PMPro admin order save repairs taxes only when tax calculation is enabled, the order is not sent and totals are inconsistent
Fixed: XML stamp duty by customer force-apply remains limited to invoice orders and excludes credit notes
Changed: Integrations > Entrypoint cards are now visible independently from allowed-addon license checks; activation remains gated by allowed add-ons and account configuration.
Added: New WooCommerce Entrypoint card (native integration) with documentation link and active/disabled visual state based on WooCommerce availability.
Changed: Integrations tooltips now show a dedicated pre-wizard message when account setup is incomplete, while preserving context-specific messages after wizard completion.
Fixed: VIES VAT normalization now supports alphanumeric EU VAT formats in both WooCommerce checkout and PMPro VIES checks.
Changed: PMPro Council Directive tax-rate check now uses normalized VAT/country values before VIES validation.
Changed: Settings > Numeration helper text updated from “Recommended 4 (you can leave it blank)” to “Enter a value from 1 to 6.” with updated locale catalogs.
Fixed: Invoice next-number candidate scan now continues when a recent WooCommerce order is outside the active series, instead of stopping early.
Fixed: Shared numeration yearly scope now also applies when "Reset the numbers at each year change" is enabled (even if year suffix is disabled), preventing historical previous-year numbers from affecting current-year assignment.
Fixed: Updated translation catalogs (it_IT, fr_FR, es_ES) and rebuilt locale binaries (.mo) for new integration and numeration strings.

= 6.7.3 - 04/03/2026 =
Added: Native response helpers `safeJsonDecode` and `prefixNativeFlowMessage` to centralize robust JSON parsing and channel-prefixed diagnostics.
Changed: SDI/PEPPOL create-and-send user-facing errors now use clear channel prefixes (`SDI:` / `PEPPOL:`) with simplified messages, while technical detail remains in logs/payload fields.
Fixed: SDI (`InvoiceApi::createAndSendInvoice`) response handling is now hardened for invalid/malformed JSON and missing properties, with safer UUID extraction and no contract-breaking output changes.
Fixed: PEPPOL (`PeppolApi::createAndSendUblInvoice`) response handling is now hardened for invalid/malformed JSON and mixed response shapes, including guarded access to nested `data` fields.
Fixed: PEPPOL state check (`PeppolApi::stateInvoice`) now safely parses mixed response bodies and falls back gracefully when body is not valid JSON.
Added: `CloudApi` JSON parser helper (`parsePopApiJsonBody`) for internal no-breaking normalization and decode-error tracking.
Fixed: `CloudApi` error path now returns consistent JSON-safe fallback payloads when upstream body is not valid JSON (`error`, `status_code`, `decode_error`, `raw`) without changing successful v2 response formats.
Fixed: `CloudApi` integration JSON handling now validates shape before reading `xml_string`, avoiding silent/fatal failures on unexpected payloads.
Fixed: Admin native-actions UI (`assets/js/admin.js`) now uses robust `fetch` parsing with `response.text()` fallback when response is not JSON, preventing generic JSON parse crashes and preserving actionable toasts.
Added: Unit tests for new native helpers (`safeJsonDecode`, `prefixNativeFlowMessage`) and for `CloudApi` parser behavior on valid/invalid/non-string inputs.
Fixed: Updated translation catalogs (it_IT, fr_FR, es_ES) for new simplified runtime strings and rebuilt locale binaries (`.mo`).

= 6.7.2 - 25/02/2026 =
Fixed: Integration cards for Aruba, Fatture in Cloud (core/receipts/stock), and SDI via PEC are now correctly disabled for non-Pro accounts.
Fixed: Integration toggle AJAX now validates option names against a whitelist and blocks unsupported option writes.
Fixed: Integration toggle AJAX now enforces account-level and integration-status checks before enabling add-ons, preventing invalid activations.
Fixed: Add-on options are now normalized at runtime (license/plan/status aware) to reset stale active flags after plan or integration status changes.
Fixed: Active invoice channel resolution now requires both option enabled and add-on plugin loaded (Fatture in Cloud, Aruba, SDI via PEC), preventing false-active channels.
Fixed: PMPro admin order save now avoids resetting existing user billing/fiscal metas when POP fields are submitted empty from the order edit screen.
Fixed: Cozmos PMS checkout scripts are now enqueued using registration-page context detection (including `[pms-register]`) instead of relying only on query params.
Fixed: Cozmos PMS tax callbacks now fail-safe when PMS Pro Tax classes are unavailable, preventing fatal errors on non-Pro or inactive-license setups.
Changed: Removed unused `PMS_IN_Tax_Extra_Fields` instantiations in Cozmos filters callbacks.
Added: New cross-provider candidate resolver for invoice next-number alignment via `wc_el_inv-next_number_last_assigned_candidate_for_series`.
Added: Candidate utilities now track number/timestamp/provider/order_id and apply deterministic tie-break (timestamp, number, order_id).
Changed: PMPro and Cozmos next-number integrations now contribute structured candidates (chronological winner) instead of max-number merges.
Added: Unit tests for candidate chain propagation, chronological selection, tie-break behavior, and legacy integer-filter fallback.
Fixed: Tests bootstrap now stubs FIC/Aruba/SDI-PEC plugin classes so integration-channel tests reflect runtime `class_exists` conditions.
Added: Centralized SDI/PEPPOL context helpers in Integrations (`getNormalizedShopCountry`, `isUblCountry`, `isSdiCountryContext`, `isPeppolCountryContext`, `isSdiContext`, `isPeppolContext`) and replaced duplicated context checks across WC, PMPro, Cozmos, admin filters, and order list actions.
Changed: SDI context detection now includes third-party SDI channels (Fatture in Cloud and Aruba) in addition to native SDI channels.
Fixed: In PEPPOL context, SDI field (`billing_sdi_type`) is now consistently hidden in checkout/profile/admin areas (WC, PMPro, Cozmos), including label/description visibility where applicable.
Fixed: Cozmos checkout/UI guardrails for SDI field visibility in PEPPOL context, including fixes for residual label/description rendering and stability improvements for field toggling flows.
Fixed: SDI field validation (`La PEC o il Codice Destinatario ...`) now runs only in SDI context and is skipped in PEPPOL context for WC/PMPro/Cozmos checkout flows.
Fixed: WC PEPPOL private-customer actions now correctly disable XML generate/view/download actions while keeping PDF available; related PEPPOL private warning behavior aligned in order table/order actions.
Fixed: Hardened PEPPOL country checks to avoid undefined-country-index warnings in settings (`pageSettingsFields.php`) and to support robust UBL-country detection.
Fixed: WooCommerce email section "Tax information" now renders its info block with styled container for better readability (`color #636363`, `border #e5e5e5`, `padding 12px`).
Added: Extended unit test coverage for new integration/context helpers and channel behavior (including FIC/Aruba SDI context), plus test bootstrap/order stubs alignment; full unit suite passing.
Fixed: SDI/PEPPOL context resolution is now mutually exclusive with shop-country precedence to handle edge cases where legacy SDI-only add-ons (FIC/Aruba) remain enabled after switching store country to PEPPOL.
Changed: PEPPOL detection in WooCommerce tax-information/admin billing views is now aligned to global store context (not per-order billing country) for consistent visibility rules.
Fixed: Cozmos checkout JS field toggling now guards null elements before `classList` operations, preventing runtime errors during invoice-type transitions.
Fixed: Added defensive `isset` checks when forcing SDI field hidden state in Cozmos billing fields to avoid PHP warnings/notices in filtered edge cases.
Fixed: In PEPPOL context, Tax Code (`billing_tax_code`) is now consistently hidden across WooCommerce/PMPro/Cozmos checkout-profile-admin-order views, aligned with SDI absence rules.
Changed: In PEPPOL context, CF-related settings are now hidden from Integration settings (`Disable Fiscal Code`, `Verify Tax Code`, `Disable PEC/SDI`) to avoid misleading configuration paths.
Changed: Runtime localization now forces PEPPOL-safe flags (`disable_pec_sdi=on`, `disable_cf=on`, `active_js_cf_check=off`) for consistent frontend behavior.
Changed: `assets/js/cf/codice-fiscale.js` is now enqueued only when `invoice_active_js_cf_check=on` and SDI context is active (WooCommerce, PMPro, Cozmos).
Fixed: PEPPOL checkout validation/process/store flows now ignore and clear Tax Code persistence for classic/block paths where required, preventing hidden-field validation regressions.
Fixed: Cozmos CF checks now fail-safe when the Tax Code input is absent, avoiding JS runtime errors in PEPPOL-hidden flows.
Fixed: In PEPPOL checkout (non-IT), `billing_invoice_type` is no longer dropped when VAT/Tax Code are empty, ensuring "Customer type" remains persisted and correctly visible in order details.
Fixed: PMPro checkout now resets `billing_company` when customer type is switched to `private` in PEPPOL context, preventing stale company value carry-over.
Fixed: PMPro server-side persistence now forcibly clears `billing_company` for PEPPOL + `billing_invoice_type=private` (checkout and renewal sync), keeping order/user meta aligned with latest customer selection.

= 6.7.1 - 18/02/2026 =
Fixed: POP API quota exceeded responses now show a readable quota-limit message instead of raw JSON output.
Added: Dedicated quota-limit UI message for wp_die with bold title, quota usage details, and actionable upgrade/refresh steps.
Fixed: Admin error email for quota-limit events now sends a clear human-readable message instead of raw API JSON.
Added: New translation strings for quota-limit title/messages in POT and PO catalogs (it_IT, fr_FR, es_ES).
Added: Unit test coverage for quota-error payload parsing, detection, message formatting, and HTML output.
Changed: Replaced legacy WooPop/WooPOP/WooPoP naming with POP in user-facing localized strings across PHP/JS, file headers, and comments (without changing technical identifiers).
Fixed: Updated affected translation catalogs and rebuilt locale binaries for changed domains (.po/.mo).
Fixed: Bootstrap environment loading now fails safely in dev mode when `config/environments/dev.php` is missing (admin notice + early return), preventing unintended fallback to production config.
Added: PMPro admin order screen now includes on-demand billing sync buttons in "Invoice Fields" to recover missing POP fiscal/billing data from the linked user profile.
Added: PMPro admin order save flow now supports two explicit sync modes from user profile (`fill_missing`, `overwrite`) before persisting order metas.
Changed: POP profile invoice fields are now centralized in a single global WordPress user profile block (shared across providers), with one save path to user meta `billing_*`.
Fixed: Removed duplicate PMPro profile show/save hooks to avoid multi-source profile saves and key collisions on shared POP billing fields.
Fixed: In WordPress user profile screens (`profile.php`, `user-edit.php`), duplicated WC/PMPro POP fields are now forced read-only via disabled state while keeping the centralized global POP block editable.
Added: Admin profile hardening script to enforce disabled duplicated provider fields and inject a contextual notice with anchor link to the centralized POP section.

= 6.7.0 - 17/02/2026 =
Added: DB advisory lock helpers based on MySQL/MariaDB GET_LOCK/RELEASE_LOCK to prevent concurrent duplicate create/send/upload actions.
Fixed: Fatture in Cloud send flow now requires explicit docID and wfc-issued_send_document=false; removed implicit docID fallback from stored document meta.
Fixed: Fatture in Cloud create flow now uses atomic lock guard to avoid duplicate issued documents under concurrent Ajax/Cron execution.
Fixed: Added channel guards to SDI/PEPPOL/FIC status callbacks so native/addon flows run only when their integration channel is effectively active.
Fixed: Hardened _invoice_sent writes across channels (SDI native, PEPPOL, Aruba, SDI via PEC, FIC) by requiring minimum success/coherence conditions before setting sent.
Fixed: Added recurring cron cleanup for inactive/disabled upload schedules (FIC, Aruba, SDI via PEC) to avoid orphan scheduled events.
Fixed: Fatture table invoice number rendering now only shows dismiss icon when both order_number_invoice and formatted number are missing, with recovery from formatted where possible.
Added: Native SDI/PEPPOL timeout-pending flow with explicit admin recovery actions in order list (Confirm UUID / Cancel timeout).
Added: New admin AJAX actions confirmNativeSendWithUuid and cancelNativeTimeoutPending to finalize or clear timeout-pending state safely.
Added: Native timeout helper set (meta keys/channel prefix/timeout detection) and centralized timeout pending metadata management.
Fixed: SDI and PEPPOL create/send flows now mark timeout-pending on timeout-like provider responses and clear pending state on successful UUID save.
Fixed: SDI and PEPPOL create/send error responses now include readable provider detail extracted from raw payload data when available.
Change: Timeout pending UUID input in native actions UI is now full-width with explicit spacing before recovery buttons.
Fixed: getNextInvoiceNumber now aligns stale next numeration values to max(next, last_assigned+1) for the active series, preventing duplicates and backward numbering.
Added: series-aware duplicate check now uses WooCommerce order queries (HPOS compatible), comparing type/prefix/year context against the latest assigned order.
Added: provider-level series hooks for PMPro and Cozmos addons via wc_el_inv-next_number_already_assigned and wc_el_inv-next_number_last_assigned_for_series.
Added: Extended unit test coverage for timeout helpers, native error detail extraction, resolver hardening edge cases, and wrapper/adapter behavior.
Fixed: Resolver hardening for invalid filter outputs (channels status/priority), empty priorities, non-string priority entries, and normalized shop country handling.

= 6.6.2 - 13/02/2026 =
Fixed: WooCommerce Blocks checkout now reliably saves POP additional billing fields into order meta during checkout completion.
Fixed: Restored JS validation flow for invoice fields in block checkout after the legacyId refactor regression.
Fixed: In PEPPOL context, billing_sdi_type is now always ignored/emptied on save for both WooCommerce classic and block checkout flows.
Fixed: In PEPPOL context, _billing_sdi_type and related SdI labels/help text are hidden in WooCommerce admin billing edit/view.
Added: New "Tax information" section on order confirmation, rendered after billing address for both classic and block checkout.
Change: Tax information output now appears only when fiscally meaningful data is present (company/freelance with VAT, private with tax code).
Removed: Legacy billing-address formatting hooks for POP tax fields replaced by dedicated Tax information rendering.

= 6.6.1 - 12/02/2026 =
Added: isCheckout and isAccountPage utility
Added: overrides filter "wc_el_inv-language_force_apply" for default PDF language
Added: billingFields.php to pmpro addon
Fixed: Harden PMPro product provider by validating membership level objects before accessing properties, preventing fatal errors when SKU/name data is missing.
Fixed: Sanitize empty value in $refundFee array
Fixed: pmpro chckout scripts
Fixed: pmpro admin label undefined field_name
Fixed: PMPro renewals now always restore billing/fiscal data (private: codice fiscale; company/freelance: P.IVA/SDI) from user or previous order, avoiding loss when SDI is absent.
Change: document date now always uses emission time (now); od_date uses operation date for invoices or linked document date for credit notes; invoice_date for credit notes uses the linked invoice date.
Removed: hook 'wfc-create-invoice_datetime-invoice' to prevent external overrides on od_date.

= 6.6.0 - 23/01/2026 =
Fixed: run checkout block validation/save hooks only when WooCommerce is active.
Fixed: guard checkout block loading so the plugin doesn’t load WC blocks when only PMPro is used.
Fixed: pass the provider to Invoice API, Peppol, and Webhook actions in the order list to support non-WooCommerce providers.

= 6.5.9 - 20/01/2026 =
Added: PEPPOL via POP action to check document state from the admin with new stateInvoice AJAX endpoint and UI button.
Added: Applied wc_el_inv-invoice_progressive_file_number filter when generating PDFs and pass context (pdf/xml) to the hook.
Fixed: Use peppol_pop-{type}_uuid meta key when handling PEPPOL POP documents to read the correct UUID.

= 6.5.8 - 08/01/2026 =
Added: resolveOrder
Fixed: disableInvoiceOnOrderTotalZero, add support for auto completed order
Fixed: getNature and getRefN

= 6.5.7 - 23/12/2025 =
Added: Freshworks widget
Fixed: PMPro update fields from admin
Fixed: Aruba - ArgumentCountError: Too few arguments to function "WooPoPToFattureArubaJobsScheduledNotify"
Fixed: Added mergeOrdersById in src/Admin/XmlOrderListTable.php to aggregate results without duplicates.

= 6.5.6 - 12/12/2025 =
Added: localization fr_FR.po
Fixed: CF check and add setCustomValidity message
Fixed: Limit order search queries to bounded pages and meta lookups to prevent ti meouts on stores with many orders while still allowing direct invoice/order number lookups.
Fixed: Sync PMPro billing fields with PMPro meta, force invoice date on success, update translations

= 6.5.5 - 03/12/2025 =
Fixed: PMPro - save invoice number from admin

= 6.5.4 - 03/12/2025 =
Fixed: vendor error

= 6.5.3 - 03/12/2025 =
Added: update Fatture in Cloud SDK
Fixed: lista_errori from notifications
Fixed: extend WC_EL_INV_UBL_COUNTRIES
Fixed: reactivated 'wc_el_inv-options-capability' filter
Fixed: support for custom customer type
Fixed: Force attachments for custom emails and normalize XML handling
Fixed: integrations image references
Fixed: PMPro - separate checkout/renewal logics
Fixed: PMPro - fix running during webhooks only
Fixed: PMPro - pop_pmproAdjustRenewalTax_CouncilDirective_2006_112_EC return order
Fixed: PMPro - check in pmpro_after_checkout order $orderProvider instanceof POPxPMPro\Providers\Order
Fixed: PMPro - add fallback 'invoice' to all get_billing_choice_type()
Fixed: PMPro - fix edit order url
Added: Allow updating the invoice number from the admin order edit screen.

= 6.5.2 - 22/10/2025 =
Fixed: Removed unintended exit statement that caused script termination in certain cases.

= 6.5.1 - 22/10/2025 =
Fixed: "GeneralFields" Class not found to addon/for/pmpro/inc/snippets/billing-fields-in-order.php:200

= 6.5.0 - 22/10/2025 =
Added: checkAndUpdateFormattedNumber to update the invoice number (if needed) when the xml is generated
Added: sdi_pop-invoice_validation_errors contains invoice validation errors
Added: shopCountry check for apply Bollo and Rivalsa
Added: error message for UUID exist
Fixed: save formatted number invoice and credit note on save metabox
Fixed: getXmlFromOrder - added action and method parameter check to correctly return JSON response from integrations
Fixed: postal code to XML for PEPPOL
Fixed: retry request, only one request for integration
Improved: Stamp duty and INPS surcharge handling in PMPro checkout
Added dynamic management of stamp duty and INPS surcharge during the Paid Memberships Pro checkout process.
Fees are now calculated and added to the order before gateway processing, with proper tax exclusion.
Metadata for both fees are stored in the order for accurate invoicing and reporting.

= 6.4.0 - 01/10/2025 =
Fixed: Uncaught Error: Class > fattureincloud/src/Jobs.php:122

= 6.3.9 - 29/09/2025 =
Fixed: getXmlFromOrder xml for integrations - error (param string is array)
Fixed: Error Uncaught ArgumentCountError: Too few arguments to function ..inc/wc/filters.php:218
Fixed: condition for Invoice not generated message

= 6.3.8 - 22/09/2025 =
Added: allowed reverse charge for growth level
Fixed: minor fix

= 6.3.7 - 02/09/2025 =
Fixed: sdi via pec Progressive file number generator
Fixed: output_buffering XML generator
Fixed: POP billing fields current value from user logged in
Added: customer email to popapi payload

= 6.3.6 - 01/09/2025 =
Fixed: Init frontend block

= 6.3.5 - 29/08/2025 =
Fixed: invoiceFields loadEvent from checkout standard

= 6.3.4 - 28/08/2025 =
Fixed: minor fix

= 6.3.3 - 28/08/2025 =
Added: POP checkout fields for WooCommerce Block
Added: extra log for cron job
Fixed: various minor fix

= 6.3.2 - 09/08/2025 =
Fixed: Uncaught TypeError: count(): "temp_order_filtered" options

= 6.3.1 - 07/08/2025 =
Fixed: getListKeyValue support code key

= 6.3.0 - 07/08/2025 =
Fixed: order customer display name and edit link
Fixed: added invoice number param to sdi-via-pop/document-preserve
Fixed: sdi_pop_notifications visibility
Fixed: check invoice send on uploadInvoice() (sdi via pec)
Fixed: product get meta
Fixed: FIC get invoice date from CreateXml::dateInvoice (change visibility method)
Added: admin notice for WC prices include tax
Added: support multi provider for JOBS
Added: notice for reviews
Added: log and list errors to notificationsInvoice
Added: added functionality for batch downloads with AJAX
Added: added API key management system and ability to create new API keys
Added: support for PMPro as a provider for generating invoices and credit notes
Added: SdI via POP - check to avoid sending if the invoice already has a uuid, and check notifications based on current uuid
Improved: creation of progressive file number
Improved: remove inline scripts (integration and wizard)
Improved: extend extra address info for fatture in cloud - add file integration.js, wizard.js

= 6.2.5 - 14/07/2025 =
Fixed: Call to a member function format() on null - InvoiceFields.php:788
Added: support for revolut_cc to getPaymentMethodInvoiceCode
Added: Support for San Marino, XML creation and SdI submission for companies and freelancers, PDF creation for private clients
Improved: SdI via POP notification error message - add error list

= 6.2.4 - 09/07/2025 =
Fixed: filterRefundedOrders for multi refund
Fixed: get_invoice_sent, get_invoice_sent_timestamp, set_invoice_sent and set_invoice_sent_timestamp order id (refund order id used)
Fixed: error "Provider name is required"

= 6.2.3 - 08/07/2025 =
Fixed: src/WooCommerce/Providers/OrderRefund get_order_number_invoice meta key
Fixed: credit note action for SdI via POP and Webhook
Fixed: style actions button

= 6.2.2 - 07/07/2025 =
Added: Webhook integration (POP → Webhook) – automatically send invoice data to external services via JSON or XML.
Added: Added UI on popapi.io > My Account > Integrations > POP to Webhook > Connect to create and manage custom webhooks (name, URL, format).
Added: Plugin settings section under Advanced > Webhook to activate webhooks and configure webhook ID.
Added: Option to enable CRON-based automation for webhook data delivery.
Added: Flattened JSON structure for better compatibility with Zapier, Make.com, Google Sheets and other no-code tools.
Added: Arrays (e.g., order_items) are now dynamically indexed (order_items_0, order_items_1, etc.) for easier parsing.
Added: Proper Content-Type header based on selected format (JSON or XML).
Added: Fallback error message if webhook is not properly configured or data is missing.
Improved: Better separation of logic for encoding and sending webhook data for maintainability and clarity.

= 6.2.1 - 07/07/2025 =
Fixed: Undefined property

= 6.2.0 - 30/06/2025 =
Added: added SdI integration via POP for direct sending to SdI
Added: filter "pop_use_local_cache"
Added: integration SdI via POP
Added: style for integration SdI via POP
Added: class InvoiceApi
Added: scripts ajax call create and notify for SdI via POP
Added: user_level localized var for admin.js
Added: filter w3tc_can_print_comment, delete comments from XML
Added: added configuration update request when requesting license update to align any changed data based on the active level
Improve: I show invoice data inside the order and in the woocommerce order list even in the "suspended" status if there is a previously created invoice number

= 6.1.9 - 04/06/2025 =
Fixed: getMimeType function (application/xml and text/xml)
Added: filter "wc_el_inv-invoice-number" to invoiceNumber

= 6.1.8 - 29/05/2025 =
Fixed: returnLocalFile for DOING_CRON context
Fixed: createFromCloud > popApi result for DOING_CRON context
Fixed: check the order status set during the invoice creation flow
Fixed: minor style fix
Added: getMimeType function

= 6.1.7 - 21/05/2025 =
Fixed: wizard flow
Fixed: discount unit

= 6.1.6 - 20/05/2025 =
Fixed: Refactored PDF generation via REST API for authenticated access
Fixed: xml/pdf file name format
Fixed: Normalize type for XML (no XML format for receipt)
Fixed: remove abs for fee total_tax
Fixed: Cannot declare class (WooPopEmails > emailClasses)

= 6.1.5 - 28/04/2025 =
Added: update level info button
Fixed: code optimization and cleanup
Improve: API performance

= 6.1.4 - 22/04/2025 =
Added: support for "scalapay" payment method
Added: getPaymentMethodInvoiceCode and return MP08 as fallback when mapped methods do not match
Added: title for icon
Fixed: DatiTrasmissione for Aruba addon
Fixed: checked uploadFileName property Aruba response
Fixed: paymentMethodCode

= 6.1.3 - 11/04/2025 =
Fixed: check mime_content_type

= 6.1.2 - 10/04/2025 =
Fixed: Create XML API params
Fixed: Allowed addon update by user level
Fixed: Set default number_next_invoice and invoice_required
Fixed: filename
Fixed: returnLocalFile enhanced file access security by validating file paths and types.

= 6.1.1 - 09/04/2025 =
Update version and readme

= 6.1.0 - 31/03/2025 =
Fixed: removed the options un used for ES account
Improve: configuration panel
Added: API v2 introduced
Added: clear cached legal files on account change

= 6.0.5 - 12/03/2025 =
Fixed: Call to a member function get_sku() on bool
Fixed: The queried order is useful only when requesting single items
Fixed: popApi function should always return a string
Fixed: invoice table limit query to 500 results
Fixed: optimizations for getOrder and getOrders
Fixed: ES language
Dev: two filters "wc_el_inv-list-orders-limit-default" and "wc_el_inv-list-orders-limit-max"

= 6.0.4 - 10/03/2025 =
Fixed: code work flow for attachment PDF
Improved: invoice date, added custom meta to set date for processing status
Added: added select for order status selection for automations

= 6.0.3 - 07/03/2025 =
Fixed: allowed addon request
Added: button for update allowed addon data from level

= 6.0.2 - 03/03/2025 =
Fixed: request api

= 6.0.1 - 28/02/2025 =
Fixed: getCurrentLanguage error

= 6.0.0 - 27/02/2025 =
Starting from this version, the Pro version has been fully integrated into the core plugin.
This means a single, more powerful solution with all features included by default.
Added: Refactoring of provider-based invoice creation logic with document creation via API
Fixed: flush_rewrite_rules
Fixed: change home_url whit site_url
Fixed: EscapeOutput
Fixed: plugin style
Update: language
Remove: pdf view template (moved in API)
Remove: dompdf/dompdf vendor

== 5.8.3 - 27/01/2025 ==
Added: notification system
Fixed: minor fix

== 5.8.2 - 17/12/2024 ==
Added: config_update
Fixed: minor fix

== 5.8.1 - 29/11/2024 ==
Added: new logo
Fixed: update version info

== 5.8.0 - 28/10/2024 ==
Added: Rivalsa INPS
Fixed: vies by type
Update: dompdf/dompdf v3
Update: change domain woopop.it to wp-pop.com

== 5.7.4 - 08/08/2024 ==
Added: filter hook 'wc_el_inv-list-table-invoice-orderby_default' dafault date_completed

== 5.7.3 - 06/08/2024 ==
Added: filter hook 'wc_el_inv-date-invoice'
Fixed: varius minor fix

== 5.7.2 - 24/07/2024 ==
Added: filters hook 'wc_el_inv-set_invoice_number_status1_check' and 'wc_el_inv-set_invoice_number_status2_check', 'wc_el_inv-pdf_customer_tax_code_number', 'wc_el_inv-pdf_customer_vat_number'
Added: action hook 'wc_el_inv-invoice_pdf_head_general_extra_data'
Fixed: calcUnitPrice final price return notax price if (vat = 0 or tax = 0)

== 5.7.1 - 12/07/2024 ==
Fixed: nature for notax regime
Added: filter hook 'wc_el_inv-disabled_set_invoice_number'

== 5.7.0 - 27/06/2024 ==
Fixed: check logo url for PDF invoice.
Fixed: trasmitter data info
Fixed: sanitize secret-api-key
Added: filter hook 'wc_el_inv-invoice_table_orders_loop'

== 5.6.9 - 19/06/2024 ==
Added: Stamp duty text to PDF invoice

== 5.6.8 - 24/05/2024 ==
Added: system for saving the xml in a directory inside wp-content/uploads
Update: language files

== 5.6.7 - 15/05/2024 ==
Fixed: not numeric value for $summaryRate items "total" and "tatal_tax" (PDF)
Fixed: number format for item price (PDF)
Fixed: ref. normative N5
Added: filter hook "wc_el_inv-stamp_duty_enable", "wc_el_inv-stamp_duty_by_customer_apply", "wc_el_inv-nature_ref_norm_default", "wc_el_inv-nature_n4_ref_norm", "wc_el_inv-nature_n5_ref_norm"
Added: support for scalapay gateway (MP08)

== 5.6.6 - 10/05/2024 ==
Added: filter hook "wc_el_inv-stamp_duty_force_apply"

== 5.6.5 - 16/04/2024 ==
Fixed: number format for Arrotondamento
Added: sortable col invoice_number

== 5.6.4 - 02/04/2024 ==
Added: WC Payments multi currency conversion
Fixed: minor fix invoiceFields.js
Fixed: invoiceNumber for credit note

== 5.6.3 - 06/03/2024 ==
Fixed: empty RiferimentoNormativo and more

== 5.6.2 - 06/03/2024 ==
Added: order param to filters nature
Added: filter hook 'wc_el_inv-nature_rc_after' and 'wc_el_inv-summary_ref_normative'
Fixed: optimezed code for summaryData Natura and RiferimentoNormativo
Fixed: marketplace style.

== 5.6.1 - 28/02/2024 ==
Fixed: marketplace center page info

== 5.6.0 - 24/02/2024 ==
Added: filter 'wc_el_inv-billing_choice_type_default' for default choice_type
Added: style and script support radio field for choice_type (use form-radio_fields)
Added: filter hook to set default value for billing_choice_type and billing_invoice_type
Added: support for change billing_choice_type and billing_invoice_type from select to input radio
Added: marketplace center page
Fixed: WooPopEmails emailClasses check key before include

== 5.5.5 - 16/02/2024 ==
Added: Document data and actions to WC order billing_address column
Fixed: Deprecated functions for PHP 8
Update: language files

== 5.5.4 - 01/02/2024 ==
Added: filter hook 'wc_el_inv-no_tax_regime_iva_natura' for no tax nature
Fixed: tax regime options

== 5.5.3 - 29/01/2024 ==
Fixed: postcode for not IT "00000"

== 5.5.2 - 23/01/2024 ==
Fixed: Errore in validazione XSD: cvc-complex-type.2.4.a: Invalid content was found starting with element 'IstitutoFinanziario'

== 5.5.1 - 23/01/2024 ==
Added: support for woopop-to-sdi-pec addon

== 5.5.0 - 16/01/2024 ==
Added: filter hook "wc_el_inv-billing_invoice_type_default" for set default billing invoice type (default: private)
Added: filter hook "wc_el_inv-shipping_notax_nature" for change Natura for notax shipping
Added: general fields Transmitter data (optionally)
Added: possibility of using negative fees.
Added: refactioring DatiRiepilogo (By Nature)

== 5.4.7 - 14/12/2023 ==
Added: extends the order search to the invoice number (does not search for a refund)
Added: option for remove product with zero total from invoice
Added: billing invoice type list option
Fixed: changed the position of some options in the plugin, from the documents tab to the wc integration tab

== 5.4.6 - 07/12/2023 ==
Added: checks on the meta value and the return of the default value in the getPostMeta function
Added: filter hook 'wc_el_inv-invoice_progressive_file_number' in progressiveFileNumber method
Fixed: taxRate function - If there is a product in the order that has been deleted, the standard tax will be assigned to the product
Fixed: If there is a product in the order that has been deleted, se description from item name data
Fixed: product code if product not exist
Fiexd: export XML filename

== 5.4.5 - 01/12/2023 ==
Fixed: Uncaught TypeError: Cannot read properties of null (reading 'firstElementChild') for vat field
Fixed: position of the Beneficiario XML field in the DettaglioPagamento block.

== 5.4.4 - 26/11/2023 ==
Added: setNextNumber function (Check and set the next invoice number)N
Added: XML an PDF (Beneficiario, IstitutoFinanziario, IBAN)
Fixed: remove abs func. to Fees (PrezzoUnitario, PrezzoTotale)

== 5.4.3 - 18/11/2023 ==
Fixed: toggleBillingCompany (receipt and reset event)

== 5.4.2 - 14/11/2023 ==
Added: support for "ppcp-credit-card-gateway" payment method
Added: support for "docente" payment method (WooCommerce Carta Docente)

== 5.4.1 - 06/11/2023 ==
Fixed: disabled doc-type radio button if is active addon (fic or aruba)
Update: dompdf/dompdf (v2.0.0 => v2.0.3)

== 5.4.0 - 17/10/2023 ==
Added: Support for High-Performance Order Storage
Fixed: reference get_post_meta, update_post_meta and delete_post_meta

== 5.3.2 - 14/10/2023 ==
Added: XML tag ScontoMaggiorazione for discount
Fixed: choiceType method, icon for receipt (credit note)
Fixed: invoiceCsvMaker Type order column

== 5.3.1 - 09/10/2023 ==
Added: option for show Product Title and Description on Invoices
Added: option for show metadata with product description on invoices
Fixed: get_billing_country for refund in TaxFields class
Fixed: progressiveFileNumber if not increment number (used FIC addon)
Update: translation string

== 5.3.0 - 04/10/2023 ==
Fixed: getOptionJsonCollections merge options for collections

== 5.2.9 - 02/10/2023 ==
Fixed: check license, add cookie for check curl error
Fixed: edit invoice link for data and number

== 5.2.8 - 27/09/2023 ==
Added: import/export options field
Added: support for external attachments (used for FIC pdf)
Added: filter hook "wc_el_inv-attachments_invoice_pdf_output"
Added: filter hook "wc_el_inv-use_external_attachments"
Fixed: get tax rate in items_fee

== 5.2.7 - 11/09/2023 ==
Added: Tax code, VAT number and E-mail (PEC) or the unique code on CSV "ordini"
Fixed: checkout validation (conditions)
Fixed: checkout process (conditions)

== 5.2.6 - 06/09/2023 ==
Fixed: toggleFieldsDisplay reset taxCode.value on change
Fixed: vies check, when create xml

== 5.2.5 - 02/09/2023 ==
Fixed: moved to plugin FIC addon - checking for attached for email customer_invoice

== 5.2.4 - 24/08/2023 ==
Fixed: getN4RefNormative - Undefined array key 999 in src/Functions/Utils.php

== 5.2.3 - 19/08/2023 ==
Added: support for WooCommerce 8.x.x
Fixed: check numeration options for FIC addon

== 5.2.2 - 27/07/2023 ==
Fixed: Management of fees for fees
Added: filter for workaround in case of absent tax_class in fees
Added: "type" data in the summeryData object to be used as a discriminant to assign the nature

== 5.2.1 - 26/07/2023 ==
Fixed: line items fee for XML and PDF
Fixed: line items fee increment line number

== 5.2.0 - 22/07/2023 ==
Added: support for WooCommerce 7.9.x
Fixed: getNature and getRefN order property
Fixed: check download zip file in /tempZip/ dir
Fixed: shippingRate() Trying to access array offset on value of type bool
Fixed: numberFormat() Uncaught TypeError: abs(): Argument #1 ($num) must be of type int|float, string given
Fixed: style

== 5.1.9 - 14/07/2023 ==
Fixed: disabled the PDF invoice attached to the completed order email if the FIC addon is activated
Added: PDF invoice attached to the "customer invoice" email if the FIC addon is activated
Added: filter "wc_el_inv-allowed_email_id_for_attachment" for email id allowed for invoice attachment

== 5.1.8 - 05/07/2023 ==
Fixed: unset billing_invoice_type on process

== 5.1.7 - 30/06/2023 ==
Fixed: checkout invoice type empty check

== 5.1.6 - 17/06/2023 ==
Fixed: tax code billing field validation for association

== 5.1.5 - 12/06/2023 ==
Fixed: billing fields HTML Injection

== 5.1.4 - 07/06/2023 ==
Fixed: CreatePdf > viesValidTaxRate vies check condition

== 5.1.3 - 06/06/2023 ==
Fixed: invalid child element DatiBollo in xml

== 5.1.2 - 01/06/2023 ==
Fixed: set default transmitter data for Aruba addon
Fixed: buildPdf condition for create PDF

== 5.1.1 - 29/05/2023 ==
Added: Reverse Charge guide link
Fixed: RiferimentoNormativo duplicate
Improve: Reverse Charge selection

== 5.1.0 - 19/05/2023 ==
Added: session data "wc_session_order_vies_check" for store vies check order meta data
Added: options for set Reverse Charge active globally
Added: initRetroCompatibility for old data Reverse Charge data
Added: support for WordPress 6.2.x
Added: support for WooCommerce 7.7.x
Fixed: admin style
Update: language files
Improve: Reverse Charge options
Improve: License control

== 5.0.4 - 28/04/2023 ==
Added: support for WordPress 6.2.x
Added: invoice fields position option (top-bottom)
Fixed: actionsFront download PDF by _billing_choice_type
Fixed: addEndPoint add condition for flush_rewrite_rules
Update: translation string

== 5.0.3 - 05/04/2023 ==
Fixed: Check order_id and parent_id to define ref order

== 5.0.2 - 31/03/2023 ==
Fixed: calcUnitPrice for refund

== 5.0.1 - 30/03/2023 ==
Added: support payment method stripe_cc

== 5.0.0 - 28/03/2023 ==
Added: gift product setting for nature management N2.2
Added: Used "woocommerce_price_num_decimals" option to manage the decimals in the PDF proforma

== 4.9.9 - 21/03/2023 ==
Fixed: add disableInvoiceOnOrderTotalZero control in attachmentsPdfToEmail
Fixed: add disableInvoiceOnOrderTotalZero control for ReceiptPdfCompletedOrder, InvoiceXmlCompletedOrder, InvoicePdfCompletedOrder

== 4.9.8 - 17/03/2023 ==
Fixed: Error Edit WC emails template whit elementor (load and save)
Fixed: save transmitter data

== 4.9.7 - 06/03/2023 ==
Fixed: XML RiferimentoNormativo

== 4.9.6 - 04/03/2023 ==
Fixed: disabled not allowed regime option
Fixed: XmlOrderListTable counter orders when filter by param

== 4.9.5 - 24/02/2023 ==
Fixed: XmlOrderListTable orderTotal for refunded
Fixed: RF11 AliquotaIVA and Natura (support for products with non-zero VAT)

== 4.9.4 - 22/02/2023 ==
Fixed: style/js/php code optimizations
Fixed: XmlOrderListTable getOrders WC_Order_Query args
Fixed: admin.js filter by date function and extend filter by type and state
Remove: remove customer_id param from endpoint and filter query
Remove: JsonOrderListTable and JsonOrderList class
Remove: XmlOrderListTable getOrders init filter date args
Remove: admin.js filterCustomer filterType function
Improve: refactor admin invoice table filter and actions

== 4.9.3 - 17/02/2023 ==
Added: functions getXmlFromOrder and isXml for get XML from order and check if the xml is valid
Added: CreateXML filter 'wc_el_inv-create-xml-global-header' if return false it does not add Content type headers
Fixed: UE and Extra UE remove tax code required for receipt
Fixed: invalid tax code message

== 4.9.2 - 08/02/2023 ==
Added: filter hook 'wc_el_inv-list-table-invoice-number', 'wc_el_inv-create-xml-invoice-number', 'wc_el_inv-create-pdf-invoice-number'
Fixed: css admin style

== 4.9.1 - 02/02/2023 ==
Fixed: update order meta nature_rc and ref_norm_rc
Fixed: hidden input doc-type-input receipt for shop_order_refund
Fixed: xml current total refunded

== 4.9.0 - 31/01/2023 ==
Added: function remove removeEmoji from string
Fixed: remove hidden meta, check meta hidden prefix "_"
Fixed: css style

== 4.8.9 - 25/01/2023 ==
Added: option fields table add class
Added: support for custom type in billing_invoice_type (works like private client)
Added: action hook "wc_el_inv-process_custom_type" and "wc_el_inv-validation_custom_type"
Fixed: switchType, undefined sdiLabel when sdi is disabled.

== 4.8.8 - 21/01/2023 ==
Fixed: remove hidden meta data from PDF and XML

== 4.8.7 - 19/01/2023 ==
Added: Check updates plugin link
Fixed: clear transient for update plugin

== 4.8.6 - 18/01/2023 ==
Fixed: VIES check - removed the country code if it was entered together with the VAT number
Fixed: allowed update nature_rc and ref_norm_rc meta_data when order edit

== 4.8.5 - 14/01/2023 ==
Added: suffix year format option
Fixed: remove "pa_" from meta data key
Fixed: clear all transient update version

== 4.8.4 - 13/01/2023 ==
Fixed: productDescription on PDF details
Fixed: clear woopop transient on plugin deactivate

== 4.8.3 - 12/01/2023 ==
Fixed: support for updates addon plugins
Fixed: resetNumerationsOnYearChange (completed order)

== 4.8.2 - 11/01/2023 ==
Fixed: remove utility options and optimization code
Fixed: productDescription (product title) for XML and PDF
Added: support for updates plugins
Added: support for RF11 (nature N5)

== 4.8.1 - 05/01/2023 ==
Fixed: various style
Added: bulk edit and save "active_reverse_charge"
Improve: wc integration options (add section navigation)

== 4.8.0 - 02/01/2023 ==
Fixed: various style
Improve: moved general invoice and reverse charge options
Added: sanitizeWCIntegrationOptions for store general invoice and reverse charge options

== 4.7.4 - 29/12/2022 ==
Fixed: filter by date date IN / OUT
Fixed: taxRate > "get_rates_for_tax_class" (Empty taxRate, State, Country)
Fixed: transmitter options only for Aruba addon
Update: fatturaPA .xsl v1.2.2 stylesheet

== 4.7.3 - 22/12/2022 ==
Fixed: store credit note numeration
Improve: admin pages style
Added: numeration for credit note (from receipt)

== 4.7.2 - 20/12/2022 ==
Fixed: receipt doc type title
Added: get tax from order by tax_class else tax by product

== 4.7.1 - 16/12/2022 ==
Added: N4 vat type getN4RefNormative WooPOP option
Added: add filter "wc_el_inv-address_file_pdf_billing_title", "wc_el_inv-address_file_pdf_shipping_title" and "wc_el_inv-address_file_pdf_payment_title" title address PDF
Fixed: plugin saved options bug

== 4.7.0 - 14/12/2022 ==
Fixed: refund imposta di bollo data and fee refund type qty
Fixed: credit note watermark pdf
Fixed: xml summaryData "Natura"

== 4.6.6 - 11/12/2022 ==
Added: numeration and prefix for receipt and credit note
Added: admin menu for addon and numeration
Added: resetNumerationsOnYearChange
Fixed: renumber utility options (invoice, receipt and credit note)

== 4.6.5 - 10/12/2022 ==
Fixed: addStampDutyFee condition

== 4.6.4 - 07/12/2022 ==
Added: support for ppcp-card-button-gateway validation
Fixed: receipt check for validation checkout data

== 4.6.3 - 06/12/2022 ==
Fixed: WC paypal payments receipt validation

== 4.6.2 - 05/12/2022 ==
Fixed: stamp duty option
Fixed: checkout user validation issue

== 4.6.1 - 05/12/2022 ==
Fixed: $prefix option
Remove: filter 'wc_el_inv-vat_checkout_check'

== 4.6.0 - 30/11/2022 ==
Added: validation checkout post data only payment_method (ppec_paypal, ppcp-gateway)
Fixed: toggle fields display if receipt
Fixed: $sdiRequired checkout process

== 4.5.4 - 23/11/2022 ==
Added: Stamp duty charged to the customer (option)
Added: Filter by dates option (completed date only)
Fixed: stamp duty conditions

== 4.5.3 - 10/11/2022 ==
Fixed: Set type for "getReverseChargeNature" in removeTaxFromOrder

== 4.5.2 - 10/11/2022 ==
Fixed: license update url and translation
Fixed: checkout process No UE check

== 4.5.1 - 26/10/2022 ==
Improved: add filter "wc_el_inv-shipping_description_for_invoice"
Added: support for WooCommerce 7.x.x
Added: support for WordPress 6.1.x
Fixed: add shipping description set
Fixed: not use stripTags for billing email
Fixed: invoice PDF, removed product description if use filter "wc_el_inv-product_title_description_pdf_invoice"

== 4.5.0 - 20/10/2022 ==
Improved: code optimizations (Endpoints)
Fixed: Rewrite Rule for products
Fixed: remove support for products json data.
Fixed: wcOrderClassName class name check
Fixed: invoice number prefix support underscore

== 4.4.1 - 17/10/2022 ==
Fixed: if the nature is not set, the VAT will always be paid
Fixed: addRewriteRule regex

== 4.4.0 - 10/10/2022 ==
Improved: Added filter hook invoice Field args "billing_invoice_field_args"
Fixed: Receipt, set billing_invoice_type = private
Fixed: Update vendor codice-fiscale-js and remove .var from name

== 4.3.9 - 21/09/2022 ==
Added: license message

== 4.3.8 - 14/09/2022 ==
Added: support for WooCommerce 6.9.x

== 4.3.7 - 02/08/2022 ==
Fixed: Js error (outerHTML) in switchTypeNoIT

== 4.3.6 - 02/08/2022 ==
Fixed: Reverse Charge flow if not set customer type

== 4.3.5 - 31/08/2022 ==
Added: support payment method 18app
Fixed: payment_method nexi xpay for xml and pdf

== 4.3.4 - 24/08/2022 ==
Improved: filter hook 'wc_el_inv-order-fee' for filter fee tax class
Added: stripTags in customerName, customerLastName, customerState and customerCity
Added: support for Added Custom Fee to WooCommerce plugin
Fixed: logic for displaying the fields if set to "receipt" at the change of state.
Fixed: Fee rate

== 4.3.3 - 11/08/2022 ==
Added: support for WooCommerce 6.8.x
Fixed: Get tax rate from taxes by country and city in products, shipping and fee (xml and pdf)

== 4.3.2 - 02/08/2022 ==
Added: paymentMethod support woocommerce_payments

== 4.3.1 - 21/07/2022 ==
Fixed: outside EU the Reverse Charge flow if hide fields

== 4.3.0 - 18/07/2022 ==
Added: support for WooCommerce 6.7.x
Added: Added-on section and tab
Fixed: Change plugin capability from "manage_options" to  "manage_woocommerce"

== 4.2.3 - 05/07/2022 ==
Fixed: update Dompdf vendor to v.2.0.0
Fixed: Dompdf compatibility whit WooCommerce PDF Invoices & Packing Slips

== 4.2.2 - 04/07/2022 ==
Fixed: getNature and getRefN from Fic addon

== 4.2.1 - 01/07/2022 ==
Fixed: create PDF in attachmentsPdfToEmail remove set order_number_invoice

== 4.2.0 - 30/06/2022 ==
Fixed: create PDF Receipt in attachmentsPdfToEmail

== 4.1.9 - 29/06/2022 ==
Fixed: reverse charge, saved data for "RF19" regime, if fields is hidden for extra ue customer

== 4.1.8 - 28/06/2022 ==
Added: filter hook for reverse charge nature and ref "wc_el_inv-nature_rc", "wc_el_inv-ref_norm_rc"
Fixed: reverse charge for "RF19" regime

== 4.1.7 - 21/06/2022 ==
Fixed: Virtual duty option

== 4.1.6 - 08/06/2022 ==
Added: support for WordPress 6.0.x
Fixed: various style Fixed

== 4.1.5 - 30/05/2022 ==
Improved: Added filter "wc_el_inv-xml_order" to CreateXml
Added: support payment_method soisy
Added: payment method info in the invoice table
Added: information and controls for the main options to configure
Fixed: filter_input, filter_var FILTER_SANITIZE_STRING filter support for PHP >= 8.1
Fixed: list order XmlOrderListTable (unset order) if Invoice order not sent and order total is equal total refunded or order total is zero

== 4.1.4 - 21/05/2022 ==
Added: support payment_method nexi xpay
Fixed: Verify Tax Code message
Fixed: Pdf watermark

== 4.1.3 - 13/05/2022 ==
Fixed: Virtual duty error

== 4.1.2 - 12/05/2022 ==
Added: Verify Tax Code (client side) for IT country
Added: Virtual duty option
Added: support for WooCommerce 6.5.x
Fixed: WooCommerce Payment Plans not increment next invoice number

== 4.1.1 - 06/05/2022 ==
Improved: Added to filter "wc_el_inv-data_line_invoice_csv" param order id
Improved: Added filter "wc_el_inv-receipt_pdf_email_recipient", "wc_el_inv-invoice_xml_email_recipient" and "wc_el_inv-invoice_pdf_email_recipient" for override recipient whit customer email
Fixed: Dompdf error - Not send/create attachments for the bulk action

== 4.1.0 - 03/05/2022 ==
Added: Added new system for updates info

== 4.0.9 - 28/04/2022 ==
Fixed: Undefined array key billing_vat_number InvoiceFields (1340)
Fixed: Uncaught ArgumentCountError Too few arguments to function setInvoiceNumberOnOrderAutoCompleted
Fixed: Undefined array key on OptionPage

== 4.0.8 - 27/04/2022 ==
Fixed: Fatal error, caused by an incorrect discount calculation when generating the PDF

== 4.0.7 - 26/04/2022 ==
Added: CedentePrestatore > Contatti to XML
Fixed: No pdf if order is 0 zero
Fixed: checkout fields label selector (selection error for wrapped field)
Fixed: auto completed and processing - Added payment complete hook

== 4.0.6 - 15/04/2022 ==
Fixed: plugins_loaded hook priority - WooPOP emails were not added if the woocommerce payments plugin was activated
Fixed: Postal code for non-Italian countries.

== 4.0.5 - 14/04/2022 ==
Added: support for WooCommerce 6.4.x
Fixed: minor Fixed

== 4.0.4 - 11/04/2022 ==
Fixed: XML invoice generation activated even if the customer chooses the receipt.
Fixed: payment method FE code conversion
Fixed: Viewing the XML file even after marking the invoice as sent
Fixed: change schema url https://www.fatturapa.gov.it/export/documenti/fatturapa/v1.2.1/Schema_del_file_xml_FatturaPA_versione_1.2.xsd

== 4.0.3 - 25/03/2022 ==
Improved: Added filter "wc_el_inv-orders_days_range" to change the range of days in the order query
Fixed: Disabled the filter for memory problems caused in case of high number of users

== 4.0.2 - 11/03/2022 ==
Fixed: PDF number format for unit price
Fixed: calcUnitPrice, removed numberFormat() after calc unitTaxedPrice in Create classes XML and PDF

== 4.0.1 - 11/03/2022 ==
Added: changelog page
Added: support for WooCommerce 6.3.x
Fixed: JS Check on the presence of fields in the checkout
Fixed: undefined tax_class on get_rates_for_tax_class
Fixed: codeOrPec default return 0000000

== 4.0.0 - 01/02/2022 ==
Improved: admin style
Improved: added autoload psr-4
Added: support for WordPress 5.9.x
Added: support for WooCommerce 6.1.x
Added: "billing_invoice_fields_priority" filter

== 3.4.0 - 17/01/2022 ==
Added: support for WooCommerce 6.0.x
Added: Transmitter data for xml invoice

== 3.3.6 - 28/12/2021 ==
Added: support for WooCommerce 6.0.x
Fixed: calcUnitPrice remove vat only woocommerce_calc_taxes is active

== 3.3.5 - 26/11/2021 ==
Added: support for WooCommerce 5.9.x
Fixed: minor

== 3.3.4 - 28/08/2021 ==
Added: support for WooCommerce 5.6.x

== 3.3.3 - 22/07/2021 ==
Fixed: required label "abbr"
Added: support for WooCommerce 5.5.x
Added: support for WordPress 5.8.x

== 3.3.2 - 28/06/2021 ==
Improved: function disableInvoiceOnOrderTotalZero disable invoice number increment if order is zero.

== 3.3.1 - 10/06/2021 ==
Fixed: error set invoice number in "attachmentsPdfToEmail"
Added: support for WooCommerce 5.4.x
Added: support for WordPress 5.7.x

== 3.3.0 - 05/05/2021 ==
Added: product meta data to invoice and refund (pdf and xml)
Added: Ability to change the date of the document (invoice)
Added: meta data to product description, activated by filter PDF: "wc_el_inv-product_meta_description_pdf_invoice" XML: wc_el_inv-product_meta_description_xml_invoice
Added: support for WooCommerce 5.2.x

== 3.2.9 - 08/04/2021 ==
Fixed: billing_choice_type field required only IT

== 3.2.8 - 02/04/2021 ==
Improved: option for the invoice prefix.
Fixed: Compatibility with "Checkout Field Editor for WooCommerce"
Fixed: invoice number on pdf completed order

== 3.2.7 - 18/03/2021 ==
Fixed: vies control VAT number, only if the reverse charge and vies option are activated

== 3.2.6 - 12/03/2021 ==
Added: support for WooCommerce 5.1.x
Added: filter "wc_el_inv-product_description_xml_invoice" and "wc_el_inv-product_description_pdf_invoice"
Fixed: license_check transient

== 3.2.5 - 16/02/2021 ==
Added: filter "wc_el_inv-prefix_invoice" and "wc_el_inv-suffix_invoice"
Fixed: create pdf and get output for email on CreatePdf->buildAttachment

== 3.2.4 - 10/02/2021 ==
Improved: remove nav items for json order and json product
Added: support for WooCommerce 5.0.x
Added: filter "wc_el_inv-active-json-menu" for active json menu
Fixed: minor Fixed

== 3.2.3 - 05/01/2021 ==
Added: action hook "wc_el_inv-after_refund_order_item_td"
Added: suffix invoice year option
Fixed: $order get id in invoiceNumber() and various minor Fixed
Fixed: update invoice nature list

== 3.2.2 - 23/12/2020 ==
Fixed: sanitize array function
Fixed: remove custom attr "siteRef" to xml file. "Used to identify the origin of the data in case of multi-site support in the management system."
Added: support for WooCommerce 4.8.x
Added: support for WordPress 5.6.x

== 3.2.1 - 04/12/2020 ==
Fixed: equal vat number check for company only
Added: filter "wc_el_inv-vat_checkout_check" activate or not vat check
Added: filter "wc_el_inv-xml_file" before xml output
Added: support for WooCommerce 4.7.x
Added: support for WordPress 5.5.x

== 3.2.0 - 30/10/2020 ==
Improved: code optimizations and various improvements
Improved: remove duplicate code from BuildJson and BuildXml
Added: Helpers class
Added: support for WooCommerce 4.6.x

== 3.1.6 - 20/09/2020 ==
Fixed: Check for the presence of the SoapClient class in the viesCheck method
Fixed: Receipt ? reset sdi, vat and tax code fake data
Added: added filter for currency and symbol CHANGE
Added: FPR12 xml version default

== 3.1.5 - 05/09/2020 ==
Fixed: invoice refund dates in pdf and xml
Fixed: credit not and invoice pdf title
Added: support for WordPress 5.5.x

== 3.1.4 - 27/08/2020 ==
Fixed: stripTags, sanitize &.
Fixed: Added description to refund no items in order
Fixed: Pdf title for private customer
Added: support for WooCommerce 4.4.x

== 3.1.3 - 11/06/2020 ==
Fixed: Added stripTags for sanitize getGeneralInvoiceOptionCompanyName data
Fixed: stripTags replace "&" whit xml entity '&#38;'
Added: query param for download xml zip even when not logged in.
Added: support for WooCommerce 4.2.0

== 3.1.2 - 26/05/2020 ==
Fixed: download filtered xml and stored temp xml data.
Fixed: calculation unit price in case of discount.
Fixed: remove created invoice xml and zip archive.

== 3.1.1 - 15/05/2020 ==
Fixed: calculation of totals and unit price.
Fixed: support for tax regime RF19.

== 3.1.0 - 10/05/2020 ==
Fixed: rounding of totals and unit price.
Fixed: item product tax by customer country.
Fixed: tax rate for shipping and fee
Fixed: remove deprecated attribute on pdf table
Added: support for WooCommerce 4.1.0
Added: search number order
Added: Reverse charge options
Added: TaxFields class for reverse charge data
Added: xml invoice tag <Arrotondamento/> to the <DatiRiepilogo/>

== 3.0.0 - 23/04/2020 ==
Fixed: province not valued if country other than IT.
Fixed: Normalize string on stripTags function.
Fixed: base url for endpoint json/xml/pdf.
Fixed: conditions for xml invoice (vat,tax code) for UE and Extra UE customer
Added: notice info for update plugin.
Added: notice warning for remember the license expires in a month.
Added: Dompdf for create pdf file and remove Mpdf library.
Added: custom email order completed for send invoice PDF
Added: custom email order completed for send receipt PDF
Added: custom email order completed for send invoice XML
Added: custom template for invoice/receipt email
Added: start development of api rest "WooPopApi"

== 2.2.2 - 15/04/2020 ==
Fixed: undefined index in invoice tab
Fixed: Added remove action after init invoice number
Fixed: check shipping total for shipping line.
Added: filter in productDescription XML and PDF
Added: initial order id param for renumber invoice whit renumberInvoice fallback function.
Added: filter product description for xml and pdf invoice.
Added: renumber utility options
Added: title for billing, shipping and payment to PDF.
Added: get woocommerce_price_thousand_sep and woocommerce_price_decimal_sep for define sep to CreatePdf->numberFormat method.
Added: added receipt pdf link in my account

== 2.2.1 - 05/04/2020 ==
Fixed: filter by date
Fixed: remove product content on XML and PDF product description
Fixed: delete invoice data on load js event
Fixed: error for display tax code and vat number in table invoice list
Added: REA information options for invoice XML and PDF

== 2.2 - 30/03/2020 ==
Fixed: support for WooCommerce 4.0.0
Fixed: WC get_european_union_countries for EU vat
Fixed: Recalculate unit price and view price with 4 decimal places after the comma
Fixed: field value check on checkout process
Fixed: filter by date bug
Added: sub menu tab link

== 2.1 - 13/12/2019 ==
Added: support for WC 3.8.x
Added: items fee on json data
Added: support for WooCommerce Extra Charges To Payment Gateway (Standard) plugin
Added: maker csv data orders
Added: filter for change receipt and invoice watermark

== 2.0.4 - 02/10/2019 ==
Fixed: Added option for download filtered invoice

== 2.0.3 - 25/07/2019 ==
Added: json node added to identify if the checkbox was checked for the shipping address at checkout
Added: prevent load plugin in ajax request
Fixed: discount xml tag

== 2.0.2 - 29/05/2019 ==
Added: filter dates in json orders
Fixed: modified range dates (14 days) in the order query in xml invoices and json orders

== 2.0.1 - 15/05/2019 ==
Fixed: undefined index in getOption method
Fixed: update language
Tweak: optimizations and various improvements

== 2.0.0 - 26/04/2019 ==
Added: system to set how invoices are sent
Added: new options to disable the fields for the unique code and the tax code from the checkout
Added: possibility to choose between receipt or invoice
Added: introduced two pdf templates for invoice and receipt
Added: possibility to overwrite PDF templates from the theme by inserting the template file on woocommerce/pdf/
Added: update mpdf version
Fixed: filter by date
Fixed: improved to the generation of credit notes

== 1.1.3 - 13/02/2019 ==
Added: field for tax code
Added: new item in invoice type select (Added freelance)
Fixed: hide input sdi and var number if invoice type is private

== 1.1.2 - 13/02/2019 ==
Fixed: progressive number file
Fixed: xml for private user

== 1.1.1 - 12/01/2019 ==
Added: Order total column sortable in invoice table list
Added: filter form manage table list columns xml and json
Fixed: shipping rate
Fixed: get product variation in order
Fixed: Receipt pdf
Fixed: illegal charset in xml
Fixed: calculation of total taxes
Fixed: check email (pec) in checkout and create xml

== 1.1.0 - 11/01/2019 ==
Added: filter xml and json by date
Added: bulk actions for zip and download xml zip
Added: date_in and date_out in query var
Added: Suffix in invoice number
Added: method for create zip file with invoice xml file
Fixed: build query check and return if post is null and 1 < of posts
Fixed: merge order refunds in build json and xml
Fixed: set status completed and refunded in wc order query args
Fixed: error get sku if product is bool
Fixed: added discount line in case of a coupon or discount on the price of the product
Fixed: function stripTags convert symbol € to EURO

== 1.0.0 - 29/12/2018 ==
Initial release
