{"id":224889,"date":"2025-03-20T13:51:33","date_gmt":"2025-03-20T13:51:33","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bnplx-payment-gateway-for-woocommerce\/"},"modified":"2026-04-19T18:12:40","modified_gmt":"2026-04-19T18:12:40","slug":"bnplx-payment-gateway-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/nl.wordpress.org\/plugins\/bnplx-payment-gateway-for-woocommerce\/","author":23230411,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.2","stable_tag":"2.0.2","tested":"6.9.4","requires":"6.0","requires_php":"7.2","requires_plugins":null,"header_name":"BNPLX Payment Gateway for WooCommerce","header_author":"Green Banana Group GmbH <contact@greenbanana.group>","header_description":"Buy now pay later orchestration payment gateway for your store.","assets_banners_color":"ffffff","last_updated":"2026-04-19 18:12:40","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.greenbanana.group","rating":0,"author_block_rating":0,"active_installs":0,"downloads":1050,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"greenbanana","date":"2025-03-20 13:51:23"},"1.0.1":{"tag":"1.0.1","author":"greenbanana","date":"2025-04-12 22:15:09"},"1.0.10":{"tag":"1.0.10","author":"greenbanana","date":"2025-10-29 15:34:23"},"1.0.2":{"tag":"1.0.2","author":"greenbanana","date":"2025-05-16 20:59:13"},"1.0.3":{"tag":"1.0.3","author":"greenbanana","date":"2025-06-10 14:54:55"},"1.0.4":{"tag":"1.0.4","author":"greenbanana","date":"2025-06-11 13:46:23"},"1.0.5":{"tag":"1.0.5","author":"greenbanana","date":"2025-07-08 14:01:10"},"1.0.6":{"tag":"1.0.6","author":"greenbanana","date":"2025-07-25 10:33:02"},"1.0.7":{"tag":"1.0.7","author":"greenbanana","date":"2025-10-19 18:53:10"},"1.0.8":{"tag":"1.0.8","author":"greenbanana","date":"2025-10-20 13:29:04"},"1.0.9":{"tag":"1.0.9","author":"greenbanana","date":"2025-10-27 09:14:26"},"1.1.0":{"tag":"1.1.0","author":"greenbanana","date":"2025-11-20 09:06:25"},"2.0.0":{"tag":"2.0.0","author":"greenbanana","date":"2026-04-19 09:55:16"},"2.0.1":{"tag":"2.0.1","author":"greenbanana","date":"2026-04-19 17:10:53"},"2.0.2":{"tag":"2.0.2","author":"greenbanana","date":"2026-04-19 18:12:40"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3259168,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3259168,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3259168,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3259168,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.10","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","1.1.0","2.0.0","2.0.1","2.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[239774,148099,1890,507,286],"plugin_category":[45],"plugin_contributors":[239775],"plugin_business_model":[],"class_list":["post-224889","plugin","type-plugin","status-publish","hentry","plugin_tags-bnplx","plugin_tags-buy-now-pay-later","plugin_tags-gateway","plugin_tags-payment","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-greenbanana","plugin_committers-greenbanana"],"banners":{"banner":"https:\/\/ps.w.org\/bnplx-payment-gateway-for-woocommerce\/assets\/banner-772x250.png?rev=3259168","banner_2x":"https:\/\/ps.w.org\/bnplx-payment-gateway-for-woocommerce\/assets\/banner-1544x500.png?rev=3259168","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bnplx-payment-gateway-for-woocommerce\/assets\/icon-128x128.png?rev=3259168","icon_2x":"https:\/\/ps.w.org\/bnplx-payment-gateway-for-woocommerce\/assets\/icon-256x256.png?rev=3259168","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>BNPLX.io - Match. Connect. Convert.<\/strong><\/p>\n\n<p><strong>More Sales, Fewer Dropouts \u2013 with bnplx.io!<\/strong>\nWith bnplx.io, you get access to multiple international Buy Now, Pay Later (BNPL) providers through a single interface \u2013 whether you're in B2B or B2C. Your customers enjoy maximum payment flexibility, while you benefit from higher conversion rates.<\/p>\n\n<p><strong>Smart Payment Routing for More Success<\/strong>\nYou decide which BNPL providers to offer. If a payment request is declined, our intelligent routing takes over: The request is automatically redirected to the provider with the highest approval probability. No payment failures, no lost customers \u2013 just seamless checkouts in real time.<\/p>\n\n<p><strong>Highlights<\/strong>\n- Multiple BNPL providers across 27+ countries\n- Baskets up to \u20ac100,000\n- Intelligent auto-rerouting upon rejection for a seamless payment experience\n- Invoice, Installment, and Direct Debit options\n- Free in starter package<\/p>\n\n<p><strong>Features<\/strong>\n- Data-driven smart routing\n- Auto retries\n- Processing in seconds\n- Dashboard access\n- Monitoring and analytics<\/p>\n\n<h3>Documentation<\/h3>\n\n<ul>\n<li><strong>BNPLX API Documentation:<\/strong> <a href=\"https:\/\/docs.staging.bnplx.io\/introduction\">Explore the API here<\/a>.<\/li>\n<li><strong>Plugin Status Explanations:<\/strong> [Coming soon \/ Insert link if available]<\/li>\n<\/ul>\n\n<h3>Usage<\/h3>\n\n<ol>\n<li><p><strong>Fast Onboarding:<\/strong><\/p>\n\n<ul>\n<li>Click the <strong>Fast Onboarding<\/strong> button to generate <strong>staging credentials<\/strong> with a dummy connector.<\/li>\n<li>This allows you to quickly test the <strong>happy path<\/strong> without complex setup.<\/li>\n<li>We occasionally reset the entire staging environment. If you notice that BNPLX is not connected, simply click the onboarding button again.<\/li>\n<\/ul><\/li>\n<li><p><strong>Simulated Purchase:<\/strong><\/p>\n\n<ul>\n<li>Use the plugin to simulate purchasing an item.<\/li>\n<li>Note: Capture, refunds, and cancellations are <strong>not<\/strong> available in this mode.<\/li>\n<\/ul><\/li>\n<li><p><strong>Full Feature Access:<\/strong><\/p>\n\n<ul>\n<li>To unlock the complete set of BNPLX features, including live transactions, please <strong>contact us<\/strong>.<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the \/wp-content\/plugins\/plugin-name directory, or install the plugin directly from the WordPress Plugins screen.<\/li>\n<li>Activate the plugin from the Plugins screen in WordPress.<\/li>\n<li>Go to Settings \u2192 Plugin Name to configure the plugin.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>2025.03.20<\/li>\n<li>New - initial release.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>2025.03.21<\/li>\n<li>New - script to create automatically a new version<\/li>\n<li>Tweak - add more details to the readme.txt<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>2025.10.19\nNew and Improved \u2013 Frontend Refactor<\/li>\n<li>Refactored payment form using native HTML  and  elements.<\/li>\n<li>Standardized all form fields to use 14px font size, 40px height, and consistent borders.<\/li>\n<li>Added user-friendly placeholder options: \u201cSelect gender\u201d, \u201cDay \/ Month \/ Year\u201d, \u201cSelect country\u201d.<\/li>\n<li>Improved accessibility with native keyboard navigation and screen reader compatibility.<\/li>\n<li>Fixed duplicate key warning for USA\/Canada phone country codes.<\/li>\n<li>Maintained emoji flag display with fallback handling.<\/li>\n<\/ul>\n\n<p>Refactoring and Optimization\n- Migrated all WordPress UI components to native HTML for improved performance.\n- Added accessible loading spinner using CSS modules.\n- Optimized decodeEntities logic for batching and error handling.\n- Consolidated hard-coded values into formConstants.js.\n- Cleaned up CSS modules and removed unused CustomDropdown component.\n- Fixed DEFAULT_PAD reference error.<\/p>\n\n<p>Fixes \u2013 Payment Flow and Backend\n- Added bnplx_phone_country_code hidden input to resolve backend validation errors.\n- Removed redundant tax and amount calculations from build_payment_payload.\n- Improved payload creation logic for order processing.\n- Corrected tax calculation using WooCommerce getter methods.\n- Fixed per-unit tax_amount calculation for order details.\n- Removed unused methods from Order_Details_Builder.<\/p>\n\n<p>Internationalization\n- Completed full German translation of all admin and frontend strings (105 total).\n- Regenerated POT, PO, MO, and JSON translation files.\n- Fixed translation inconsistencies and ensured complete i18n support.<\/p>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>2025.10.20\nImprovements<\/li>\n<li>Regenerated POT\/PO\/MO\/JSON; improved i18n script flow.<\/li>\n<li>JS Runtime: migrated http client to Axios with interceptors + timeout; lazy client init to avoid load-order issues.<\/li>\n<li>Woo Blocks: defined $user_id in payment method data; ensured script translations load via wp_set_script_translations.<\/li>\n<li>Correct construction of range\/length messages (no mixed regex replacements).<\/li>\n<li>Improved order details handling<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>2025.10.27<\/li>\n<li>Use mathematical approach for precise tax calculations<\/li>\n<li>Add support for fees, gift cards, and multiple shipping methods<\/li>\n<li>Support currencies with no decimals (JPY, ISK)<\/li>\n<li>Remove rounding discrepancy fixes for consistent calculations<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>2025.10.29\nRefactor payment intent update flow and improve security<\/li>\n<li>Harmonize create\/update payment intent methods structure<\/li>\n<li>Fix calculate_payment_amounts return value usage (order_tax_amount)<\/li>\n<li>Remove redundant checkoutEvents.js, merge duplicate handlers<\/li>\n<li>Simplify update API response (return only payment_id)<\/li>\n<li>Add session-based payment ID validation for security<\/li>\n<li>Support both jQuery (classic) and native events (Blocks checkout)<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>2025.11.20\nRefactor payment intent update flow and improve security<\/li>\n<li>Harmonize create\/update payment intent methods structure<\/li>\n<li>Fix calculate_payment_amounts return value usage (order_tax_amount)<\/li>\n<li>Remove redundant checkoutEvents.js, merge duplicate handlers<\/li>\n<li>Simplify update API response (return only payment_id)<\/li>\n<li>Add session-based payment ID validation for security<\/li>\n<li>Support both jQuery (classic) and native events (Blocks checkout)<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>2026.04.19<\/li>\n<\/ul>\n\n<p><strong>Major: Hosted Payment Page (HPP) Integration<\/strong><\/p>\n\n<p>Replaced the embedded inline checkout with a redirect-based hosted payment page flow.\nCustomers are now redirected to the BNPLX SDK to complete payment, then returned to\nWooCommerce where the order status is verified server-side. This significantly reduces\nplugin complexity and maintenance burden.<\/p>\n\n<p>New \u2013 Hosted Payment Page Flow\n- Customer clicks \"Place Order\" \u2192 payment intent created server-side \u2192 redirect to BNPLX SDK\n- After payment, customer returns to WooCommerce via wc-api callback\n- Payment status verified server-side via BNPLX API (never trusted from URL params)\n- Supports success, failure, cancellation, and requires_capture statuses\n- Cart preserved until payment is confirmed \u2014 retry on failure without re-adding items\n- Cancel detection via SDK \/cancelled URL path for requires_payment_method status<\/p>\n\n<p>New \u2013 Admin Settings\n- \"Merchant ID\" \u2014 merchant identifier registered on the BNPLX gateway\n- \"Checkout URL\" \u2014 BNPLX hosted payment page URL (e.g. https:\/\/gateway.bnplx.io\/sdk)\n- \"Checkout description\" \u2014 configurable text shown at checkout (defaults to dynamic redirect message with payment method name)\n- \"Place Order\" button overridden to \"Continue to payment\" when BNPLX is selected<\/p>\n\n<p>New \u2013 Block &amp; Legacy Checkout Support\n- Both WooCommerce Blocks checkout and legacy [woocommerce_checkout] shortcode supported\n- Minimal 25-line blocks.js using plain JS (no React, no JSX, no build step)\n- Consistent display: bold centered description, custom button label<\/p>\n\n<p>Removed \u2013 Embedded Frontend\n- Removed all React components (PaymentFormContent, PaymentMethodSelector, PhoneNumberField, DateOfBirthField, GenderField, SSNField, HintAndPrivacyAgreement, LoadingSpinner)\n- Removed all CSS modules and frontend services (httpClient.js, utils.js)\n- Removed all AJAX endpoints (create\/update payment intent, get payment methods)\n- Removed frontend form validation (server-side validation no longer needed \u2014 SDK handles it)<\/p>\n\n<p>Removed \u2013 PHP Services\n- WC_BNPLX_Payment_Service (AJAX payment intent creation)\n- WC_BNPLX_Validation_Service (inline form validation)\n- WC_BNPLX_Payment_Method_Service (AJAX payment method fetcher)\n- WC_BNPLX_Customer_Service (customer data extraction for inline form)\n- WC_BNPLX_Old_Checkout (legacy checkout renderer)\n- WC_BNPLX_Settings_Sanitizer (validated removed payment methods order setting)<\/p>\n\n<p>Removed \u2013 Build Toolchain\n- No more webpack, babel, node_modules, package.json, or npm install\n- Zero JavaScript build dependencies \u2014 blocks.js committed directly as plain JS<\/p>\n\n<p>Removed \u2013 Admin Settings\n- \"Show gender dropdown\", \"Show date of birth dropdown\", \"Show SSN field\" (SDK handles form fields)\n- \"Order of payment methods\" (SDK handles method selection)\n- \"Retry Action\" (hardcoded to manual_retry)<\/p>\n\n<p>Improved \u2013 Code Quality\n- Removed ~4,000 lines of dead code\n- Removed browser fingerprinting (SDK collects it on the hosted page)\n- Billing\/shipping phone sent as string instead of nested object (gateway schema compatibility)\n- Consistent use of BNPLX_Keys constants and WC_BNPLX_Settings accessors throughout\n- Redundant $order-&gt;save() calls removed (WooCommerce update_status already saves)\n- Consolidated error redirect pattern into reusable redirect_to_checkout() helper\n- Regenerated translation files \u2014 removed stale JS references, added new German translations<\/p>\n\n<p>Unchanged\n- Capture, refund, and cancel admin actions remain fully functional in WooCommerce\n- Manual capture via order actions\n- HPOS (High Performance Order Storage) compatibility\n- Subscription support<\/p>","raw_excerpt":"Optimal BNPL Solutions for Merchants | bnplx.io","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/224889","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=224889"}],"author":[{"embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/greenbanana"}],"wp:attachment":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=224889"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=224889"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=224889"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=224889"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=224889"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=224889"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}