{"id":388088,"date":"2026-10-17T17:42:51","date_gmt":"2026-10-17T17:42:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/beziworld-payment-rules-for-woocommerce\/"},"modified":"2026-10-17T17:42:29","modified_gmt":"2026-10-17T17:42:29","slug":"beziworld-payment-rules-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/beziworld-payment-rules-for-woocommerce\/","author":23394266,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.1.3","requires":"6.6","requires_php":"7.4","requires_plugins":null,"header_name":"Beziworld - Payment Rules","header_author":"Beziworld","header_description":"Conditional payment methods for WooCommerce: show, hide, limit, sort and add fees or discounts by shipping, country, cart, products and customer. Classic and block checkout.","assets_banners_color":"071519","last_updated":"2026-10-17 17:42:29","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/beziworld.eu\/projekty\/payment-rules","header_author_uri":"https:\/\/beziworld.eu\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":67,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"beziworld","date":"2026-10-17 17:42:29","revision":3752218}},"upgrade_notice":{"1.0.2":"<p>The checkout block keeps working after a refused order.<\/p>","1.0.1":"<p>Readable select fields and button links in the settings screen.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3752218,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3752218,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3752218,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3752218,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3752218,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"beziworld-payment-rules\/payment-methods":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"beziworld-payment-rules\/payment-methods","title":"Payment methods","category":"woocommerce","icon":"money-alt","description":"Shows which payment methods the current cart can use, following the payment rules.","keywords":["payment","gateway","checkout"],"textdomain":"beziworld-payment-rules-for-woocommerce","attributes":{"title":{"type":"string","default":""},"showUnavailable":{"type":"boolean","default":true},"showDescriptions":{"type":"boolean","default":false},"showIcons":{"type":"boolean","default":true}},"supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true,"padding":true},"typography":{"fontSize":true}},"editorScript":"bwpr-payment-methods-editor"}},"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3752218,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3752218,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3752218,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3752218,"resolution":"4","location":"assets","locale":"","width":1440,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3752218,"resolution":"5","location":"assets","locale":"","width":1440,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3752218,"resolution":"6","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"Quick matrix: choose which payment methods go with each shipping method.","2":"Rule editor with conditions, actions, fees and a readable summary of every rule.","3":"Surcharge restriction: payment types that consumers are never charged a fee for.","4":"Simulator: describe an order and see which payment methods remain and why.","5":"Report: orders, revenue and fees per payment method.","6":"About the author, with an optional way to support the development."}},"plugin_section":[],"plugin_tags":[152762,145322,6594,131954,286],"plugin_category":[45],"plugin_contributors":[265339],"plugin_business_model":[],"class_list":["post-388088","plugin","type-plugin","status-publish","hentry","plugin_tags-checkout-fees","plugin_tags-conditional-payments","plugin_tags-payment-gateways","plugin_tags-payment-methods","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-beziworld","plugin_committers-beziworld"],"banners":{"banner":"https:\/\/ps.w.org\/beziworld-payment-rules-for-woocommerce\/assets\/banner-772x250.png?rev=3752218","banner_2x":"https:\/\/ps.w.org\/beziworld-payment-rules-for-woocommerce\/assets\/banner-1544x500.png?rev=3752218","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/beziworld-payment-rules-for-woocommerce\/assets\/icon.svg?rev=3752218","icon":"https:\/\/ps.w.org\/beziworld-payment-rules-for-woocommerce\/assets\/icon.svg?rev=3752218","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/beziworld-payment-rules-for-woocommerce\/assets\/screenshot-1.png?rev=3752218","caption":"Quick matrix: choose which payment methods go with each shipping method."},{"src":"https:\/\/ps.w.org\/beziworld-payment-rules-for-woocommerce\/assets\/screenshot-2.png?rev=3752218","caption":"Rule editor with conditions, actions, fees and a readable summary of every rule."},{"src":"https:\/\/ps.w.org\/beziworld-payment-rules-for-woocommerce\/assets\/screenshot-3.png?rev=3752218","caption":"Surcharge restriction: payment types that consumers are never charged a fee for."},{"src":"https:\/\/ps.w.org\/beziworld-payment-rules-for-woocommerce\/assets\/screenshot-4.png?rev=3752218","caption":"Simulator: describe an order and see which payment methods remain and why."},{"src":"https:\/\/ps.w.org\/beziworld-payment-rules-for-woocommerce\/assets\/screenshot-5.png?rev=3752218","caption":"Report: orders, revenue and fees per payment method."},{"src":"https:\/\/ps.w.org\/beziworld-payment-rules-for-woocommerce\/assets\/screenshot-6.png?rev=3752218","caption":"About the author, with an optional way to support the development."}],"raw_content":"<!--section=description-->\n<p>Beziworld - Payment Rules decides which payment methods a customer sees at checkout and what they cost. It works the same in the classic checkout, the checkout block, the order-pay page and the Store API.<\/p>\n\n<h4>Quick matrix<\/h4>\n\n<p>Tick which payment methods are not available for each shipping method. Cash on delivery for parcel lockers, bank transfer for local pickup: a common setup takes a minute.<\/p>\n\n<h4>Rules<\/h4>\n\n<p>Every rule has conditions and actions. Conditions in a group must all match, and a rule applies when any of its groups matches.<\/p>\n\n<p>Conditions:<\/p>\n\n<ul>\n<li>Shipping: shipping method or rate, shipping zone, shipping country, whether the order needs shipping.<\/li>\n<li>Cart: cart total (with or without discounts, tax and shipping), number of items, weight, coupons.<\/li>\n<li>Products: product, category, tag, shipping class, product type (including virtual and downloadable), stock status.<\/li>\n<li>Customer: billing country, logged in, role, number of previous orders, total spent, business customer with a VAT number.<\/li>\n<li>Store: currency, language (WPML, Polylang), day of the week, time of day, date range.<\/li>\n<\/ul>\n\n<p>Actions:<\/p>\n\n<ul>\n<li>Hide payment methods, or show only some of them.<\/li>\n<li>Show a payment method as unavailable, with a reason the customer can read.<\/li>\n<li>Allow a payment method only between a minimum and a maximum order amount.<\/li>\n<li>Add a fee or a discount: fixed, percentage, per item or in tiers by order amount, with a minimum, a maximum, a tax class and amounts per currency.<\/li>\n<li>Highlight a payment method with a badge, change its position, preselect it, or change its title and description.<\/li>\n<\/ul>\n\n<h4>Built for real checkouts<\/h4>\n\n<ul>\n<li>Fees are added only after the customer actually chooses a payment method, and express payment buttons never get a fee.<\/li>\n<li>When the fee changed between the moment the customer saw the total and the moment they placed the order, the order is stopped with a message instead of being charged a different amount.<\/li>\n<li>On the order-pay page only payment methods with the same fee as the order are offered, so a placed order is never repriced.<\/li>\n<li>A fallback payment method keeps customers able to pay when the rules leave nothing.<\/li>\n<li>Every decision can be written to the WooCommerce log.<\/li>\n<\/ul>\n\n<h4>Surcharge restriction for the EU<\/h4>\n\n<p>EU and Polish law do not allow a consumer surcharge for using a payment card, a bank transfer, BLIK or other common payment instruments. Assign a type to every payment method and the plugin will not charge consumers a fee for restricted types. Business customers, recognised by a VAT number, can still be charged, and discounts are always allowed. Payment methods without a type count as restricted until you classify them.<\/p>\n\n<h4>Tools<\/h4>\n\n<ul>\n<li>Simulator: describe an order and see which payment methods remain, which fees apply and which rule decided.<\/li>\n<li>Diagnostics: finds rules that point to removed payment or shipping methods, fees that will not be charged and settings that leave customers without a way to pay.<\/li>\n<li>Report: orders, revenue and fees per payment method.<\/li>\n<li>Templates for common Polish store setups.<\/li>\n<li>Import and export as JSON, from the screen, from WP-CLI or through GraphQL.<\/li>\n<\/ul>\n\n<h4>Display anywhere<\/h4>\n\n<ul>\n<li>Shortcode <code>[bwpr_payment_methods]<\/code>, a \"Payment methods\" block and an Elementor widget show which payment methods the current cart can use.<\/li>\n<li>All front-end output comes from templates a theme can override, and the small stylesheet can be switched off, so classic themes and page builders can restyle everything.<\/li>\n<\/ul>\n\n<h4>For developers<\/h4>\n\n<p>Every part can be extended or replaced with WordPress filters and actions: condition types, action types, the evaluator, the context, the result, the surcharge policy, the templates, the REST routes and the admin screen (through wp.hooks). See the hooks reference in README.md.<\/p>\n\n<h4>Integrations<\/h4>\n\n<ul>\n<li>WooCommerce checkout block and Store API, classic checkout, order-pay page, HPOS.<\/li>\n<li>WPML, Polylang, WPML Multi-Currency, CURCY, Aelia Currency Switcher and WOOCS for language and currency.<\/li>\n<li>WP-CLI: <code>wp bwpr list<\/code>, <code>export<\/code>, <code>import<\/code>, <code>diagnose<\/code>, <code>simulate<\/code>, <code>report<\/code>.<\/li>\n<li>WPGraphQL: the decision for the current cart and the configuration for shop managers.<\/li>\n<\/ul>\n\n<p>Documentation and support: https:\/\/beziworld.eu\/projekty\/payment-rules<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install it from the Plugins screen, then activate it.<\/li>\n<li>Go to WooCommerce &gt; Payment rules.<\/li>\n<li>Start with the quick matrix or add a rule, then check the result in the Simulator.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20the%20checkout%20block%3F\"><h3>Does it work with the checkout block?<\/h3><\/dt>\n<dd><p>Yes. The block receives the decision from the server with the cart, so the payment list, the fees and the totals always match what the classic checkout would show.<\/p><\/dd>\n<dt id=\"can%20i%20charge%20a%20fee%20for%20card%20or%20bank%20transfer%20payments%3F\"><h3>Can I charge a fee for card or bank transfer payments?<\/h3><\/dt>\n<dd><p>Not to consumers in the EU. The surcharge restriction is on by default and blocks such fees for consumers. You can classify your payment methods, set a maximum fee for allowed types or switch the restriction off if your store is outside the EU. This is not legal advice; check the rules that apply to your store.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20no%20payment%20method%20is%20left%3F\"><h3>What happens if no payment method is left?<\/h3><\/dt>\n<dd><p>The fallback payment method from the settings is offered. Without a fallback the customer sees the message you set, or the standard WooCommerce message.<\/p><\/dd>\n<dt id=\"will%20my%20rules%20be%20removed%20when%20i%20delete%20the%20plugin%3F\"><h3>Will my rules be removed when I delete the plugin?<\/h3><\/dt>\n<dd><p>No, unless you switch off \"Keep rules and settings when the plugin is deleted\". Data stored on orders is never removed.<\/p><\/dd>\n<dt id=\"can%20i%20change%20how%20the%20lists%20look%20in%20my%20theme%3F\"><h3>Can I change how the lists look in my theme?<\/h3><\/dt>\n<dd><p>Copy a file from <code>templates\/<\/code> in the plugin folder to <code>beziworld-payment-rules\/<\/code> in your theme and edit the copy. To drop the plugin stylesheet, use <code>add_filter( 'bwpr_enqueue_frontend_styles', '__return_false' );<\/code>.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20the%20checkout%3F\"><h3>Does it slow down the checkout?<\/h3><\/dt>\n<dd><p>Rules are evaluated in memory once per request and cached for that request. Customer history is read only when a rule uses it.<\/p><\/dd>\n<dt id=\"where%20do%20i%20report%20a%20problem%3F\"><h3>Where do I report a problem?<\/h3><\/dt>\n<dd><p>Use the \"Report a problem\" form on the plugin page: https:\/\/beziworld.eu\/projekty\/payment-rules. Please include your WooCommerce version, the checkout you use (classic or block) and, if you can, an export of your rules from Tools.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: the checkout block no longer stops responding with a \"Maximum call stack size exceeded\" error after an order is refused.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: select fields in the settings screen keep readable colours on hover, on focus and in the opened list, in both the dark and the light theme.<\/li>\n<li>Fix: links styled as buttons are no longer underlined or recoloured on hover.<\/li>\n<li>Change: the plugin name is now \"Beziworld - Payment Rules\".<\/li>\n<li>Change: the text domain now matches the plugin slug, beziworld-payment-rules-for-woocommerce.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<li>\"About the author\" tab with the author details and an optional way to support the development, linked from the Plugins screen.<\/li>\n<\/ul>","raw_excerpt":"Show, hide, limit, sort and price WooCommerce payment methods by shipping, country, cart, products and customer. Classic and block checkout.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/388088","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=388088"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/beziworld"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=388088"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=388088"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=388088"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=388088"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=388088"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=388088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}