5.4.14, 2026-04-10
-------------------------------------
- Fix: Webhook order.paid/order.expired now uses wc_get_order() with fallback lookup by conekta-order-id meta, fixing HPOS compatibility and 3DS temp order mismatch
- Fix: validate_reference_id now rejects empty, non-numeric, zero, and negative values
- Enhancement: Optimized WordPress.org SVN deployment — exclude dev files, add --delete for clean sync, use --no-dev for composer, and shallow SVN checkout to skip historical tags
- Enhancement: Reduced CI log noise with quiet flags on svn, rsync, and apt-get commands

## [5.4.13]() - 2026-04-10
- Enhancement: Optimize WordPress.org SVN deployment — exclude dev files, add `--delete` for clean sync, use `--no-dev` for composer, and shallow SVN checkout to skip historical tags
- Enhancement: Reduce CI log noise with quiet flags on svn, rsync, and apt-get commands
5.4.12, 2026-04-10
-------------------------------------
- Feature: Full support for dynamic pricing plugins (Advanced Dynamic Pricing and Discount Rules)
- Feature: Three discount sources for Conekta: native coupons (coupon), fee-based (campaign), price-level (campaign)
- Feature: line_items use original regular_price; dynamic discounts go to discount_lines for visibility
- Fix: 3DS classic checkout recalculates cart so dynamic pricing hooks fire before order creation
- Fix: 3DS order uses cart subtotal/total instead of catalog prices
- Fix: Cart fees (negative fees from dynamic pricing) copied to 3DS WC order
- Enhancement: Fragment system keeps JS conekta_settings in sync after checkout AJAX refreshes
- Enhancement: Classic checkout JS sends discount_lines in 3DS request
- Enhancement: Price-level discount detection across all 6 payment gateways
- Tests: 40 PHPUnit tests, 127 assertions

5.4.11, 2026-03-30
-------------------------------------
- Fix: Resolved fatal error when plugin is activated without API key configured by moving 3DS company fetch inside api_key guard

5.4.10, 2026-03-27
-------------------------------------
- Security: Added CSRF protection to the WC AJAX 3DS order endpoint via nonce verification
- Security: Nonce is now generated in PHP and passed to Classic and Blocks checkout scripts, then verified server-side before processing

5.4.9, 2026-03-25
-------------------------------------
- Fix: Resolved 404 errors on checkout and 3DS endpoints when WordPress is installed in a subdirectory
- Fix: Replaced hardcoded URLs with dynamic WordPress functions (WC_AJAX::get_endpoint and rest_url) for Classic and Blocks checkout

5.4.8, 2025-11-25
-------------------------------------
- Fix: Resolved critical issue where discount_lines were not being sent to Conekta in 3DS orders
- Fix: Coupons now correctly apply to orders created during 3DS authentication flow
- Enhancement: Added automatic coupon detection and application from WooCommerce cart for both Classic and Blocks checkout
- Enhancement: Implemented intelligent fallback mechanism to capture discounts when frontend data is unavailable
- Enhancement: Improved discount handling consistency between WooCommerce Blocks and Classic checkout with 3DS enabled

5.4.7, 2025-11-12
-------------------------------------
- Fix: Improved shipping method handling in classic checkout by prioritizing conekta_settings
- Fix: Enhanced fallback logic for label and cost extraction in shipping information
- Enhancement: Added shipping information handling in classic checkout script

5.4.6, 2025-10-17
-------------------------------------
- Chore: Re-release of the plugin to address deployment configuration

5.4.5, 2025-10-15
-------------------------------------
- Feature: Added BBVA Pay by Bank (Pago Directo) payment method support
- Feature: Automatic device detection for payment redirect (desktop uses web URL, mobile uses deep link)
- Feature: Added order expiration configuration in minutes (10-1440 min) for Pay by Bank
- Enhancement: Automatic payment window opening with intelligent fallback for blocked popups
- Enhancement: Improved user experience with seamless BBVA payment flow

5.4.4, 2025-10-13
- Fix: Resolved issue where classic checkout was not sending product names correctly in 3DS validation
- Fix: Eliminated 'Temporary 3DS validation' placeholder appearing in classic checkout orders
- Enhancement: Classic checkout now sends real cart item data (product names, quantities, totals) to Conekta API
- Enhancement: Improved cart data handling consistency between WooCommerce Blocks and Classic checkout
- Enhancement: Added fallback mechanism to retrieve cart data from WooCommerce session when not provided

5.4.3, 2025-09-26
-------------------------------------
- Fix: Resolved shipping_lines amount not being sent correctly for credit card payments
- Fix: Corrected double conversion to cents issue that caused incorrect shipping amounts
- Enhancement: Improved shipping data capture from both WooCommerce Blocks and Classic checkout
- Enhancement: Added comprehensive shipping method support for credit card payment flows
- Enhancement: Better consistency between payment methods for shipping cost handling

5.4.2, 2024-09-15
-------------------------------------
- Enhancement: Updated Conekta PHP SDK to v7.0.5 and refactored to use new SDK methods.

5.4.1, 2024-09-05
-------------------------------------
- Fix: Classic checkout now properly supports 3D Secure (3DS) functionality

5.4.0, 2024-08-28
-------------------------------------
- Feature: Added 3D Secure (3DS) v2 support for enhanced payment security
- Feature: Improved fraud prevention measures with latest 3DS authentication
- Enhancement: Better compatibility with modern payment security standards

5.3.0, 2025-08-06
-------------------------------------
- Fix: WooCommerce Blocks now correctly update payment amount when coupons are applied or removed
- Fix: Monthly installments (MSI) now calculate correctly with discounted totals in Blocks checkout

4.0.3, 2024-02-13
-------------------------------------
- Fix status orders, new orders are created with status "pending payment" and not "on-hold"

4.0.2, 2024-01-24
-------------------------------------
- Fix error when creating order with empty shipping contact

4.0.1, 2024-01-23
-------------------------------------
- Fix error when create charge in php 7.4

4.0.0, 2024-01-23
-------------------------------------
- Update conekta-php library
- Checkout Blocks compatibility.
- Updated to the new redirected checkout process: Conekta Component.
- Simplified integration process using one API key for all payment methods.

3.7.7, 2023-12-05
-------------------------------------
- fix shipping lines amount

3.7.6, 2023-11-14
-------------------------------------
- supports order.expired and order.cancelled for changing order status

3.7.5, 2023-04-28
-------------------------------------
- Remove tests on lib conekta

3.7.3, 2023-04-27
-------------------------------------
- Fix error when create charge in php 7.4

3.7.2, 2023-04-24
-------------------------------------
- Update version

3.7.1, 2023-04-18
-------------------------------------
- Update conekta-php library

3.7.0, 2022-02-15
-------------------------------------
- Homologation with Wordpress standards

3.0.8, 2020-06-19
-------------------------------------
- Fix problem whit amount in discount_lines

3.0.7, 2020-05-30
-------------------------------------
- Fix problem whit amount -1
- Fix problem whit reference oxxo pay

3.0.6, 2020-01-10
-------------------------------------
- Fix problem with amount -1

3.0.5, 2019-08-10
-------------------------------------
- Updated images for Conekta Payments

3.0.4, 2018-04-11
-------------------------------------
- Fix for error token already used

3.0.3, 2018-01-10
-------------------------------------
- Update PHP Lib compatible with PHP 7+

3.0.2, 2017-11-30
-------------------------------------
- Custom instructions and description for Oxxo and Spei payment
- Order info in email templates

3.0.1, 2017-09-09
-------------------------------------
- Bundle CA Root Certificates

3.0.0, 2017-08-21
-------------------------------------
- Compatibility with WooCommerce 3
- Correction in access to order properties