Refactoring and Optimization
– Migrated all WordPress UI components to native HTML for improved performance.
– Added accessible loading spinner using CSS modules.
– Optimized decodeEntities logic for batching and error handling.
– Consolidated hard-coded values into formConstants.js.
– Cleaned up CSS modules and removed unused CustomDropdown component.
– Fixed DEFAULT_PAD reference error.
Fixes – Payment Flow and Backend
– Added bnplx_phone_country_code hidden input to resolve backend validation errors.
– Removed redundant tax and amount calculations from build_payment_payload.
– Improved payload creation logic for order processing.
– Corrected tax calculation using WooCommerce getter methods.
– Fixed per-unit tax_amount calculation for order details.
– Removed unused methods from Order_Details_Builder.
Internationalization
– Completed full German translation of all admin and frontend strings (105 total).
– Regenerated POT, PO, MO, and JSON translation files.
– Fixed translation inconsistencies and ensured complete i18n support.
Major: Hosted Payment Page (HPP) Integration
Replaced the embedded inline checkout with a redirect-based hosted payment page flow.
Customers are now redirected to the BNPLX SDK to complete payment, then returned to
WooCommerce where the order status is verified server-side. This significantly reduces
plugin complexity and maintenance burden.
New – Hosted Payment Page Flow
– Customer clicks “Place Order” → payment intent created server-side → redirect to BNPLX SDK
– After payment, customer returns to WooCommerce via wc-api callback
– Payment status verified server-side via BNPLX API (never trusted from URL params)
– Supports success, failure, cancellation, and requires_capture statuses
– Cart preserved until payment is confirmed — retry on failure without re-adding items
– Cancel detection via SDK /cancelled URL path for requires_payment_method status
New – Admin Settings
– “Merchant ID” — merchant identifier registered on the BNPLX gateway
– “Checkout URL” — BNPLX hosted payment page URL (e.g. https://gateway.bnplx.io/sdk)
– “Checkout description” — configurable text shown at checkout (defaults to dynamic redirect message with payment method name)
– “Place Order” button overridden to “Continue to payment” when BNPLX is selected
New – Block & Legacy Checkout Support
– Both WooCommerce Blocks checkout and legacy
Removed – Embedded Frontend
– Removed all React components (PaymentFormContent, PaymentMethodSelector, PhoneNumberField, DateOfBirthField, GenderField, SSNField, HintAndPrivacyAgreement, LoadingSpinner)
– Removed all CSS modules and frontend services (httpClient.js, utils.js)
– Removed all AJAX endpoints (create/update payment intent, get payment methods)
– Removed frontend form validation (server-side validation no longer needed — SDK handles it)
Removed – PHP Services
– WC_BNPLX_Payment_Service (AJAX payment intent creation)
– WC_BNPLX_Validation_Service (inline form validation)
– WC_BNPLX_Payment_Method_Service (AJAX payment method fetcher)
– WC_BNPLX_Customer_Service (customer data extraction for inline form)
– WC_BNPLX_Old_Checkout (legacy checkout renderer)
– WC_BNPLX_Settings_Sanitizer (validated removed payment methods order setting)
Removed – Build Toolchain
– No more webpack, babel, node_modules, package.json, or npm install
– Zero JavaScript build dependencies — blocks.js committed directly as plain JS
Removed – Admin Settings
– “Show gender dropdown”, “Show date of birth dropdown”, “Show SSN field” (SDK handles form fields)
– “Order of payment methods” (SDK handles method selection)
– “Retry Action” (hardcoded to manual_retry)
Improved – Code Quality
– Removed ~4,000 lines of dead code
– Removed browser fingerprinting (SDK collects it on the hosted page)
– Billing/shipping phone sent as string instead of nested object (gateway schema compatibility)
– Consistent use of BNPLX_Keys constants and WC_BNPLX_Settings accessors throughout
– Redundant $order->save() calls removed (WooCommerce update_status already saves)
– Consolidated error redirect pattern into reusable redirect_to_checkout() helper
– Regenerated translation files — removed stale JS references, added new German translations
Unchanged
– Capture, refund, and cancel admin actions remain fully functional in WooCommerce
– Manual capture via order actions
– HPOS (High Performance Order Storage) compatibility
– Subscription support
Plugin Website
Visit website
Share Post
Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.