View Categories

Payment Gateways by Shipping Troubleshooting

Most problems with Payment Gateways by Shipping Method for WooCommerce come from when WooCommerce knows the chosen shipping method, how the allow lists work, or the checkout type. Check the settings at WPFactory > Payment Gateways by Shipping (also reachable at WooCommerce > Settings > Payment Gateways by Shipping), then match your symptom below.

No payment methods, or a restricted gateway, before shipping is chosen #

Cause: a gateway with a filled field is shown only when exactly one shipping method is chosen. Before the customer enters an address, or when no shipping method is available for the address, restricted gateways are hidden. If every gateway is restricted, checkout shows no payment methods.

  1. Leave at least one gateway with an empty field so there is always a payment option.
  2. Make sure every shipping zone has a method, including the zone for locations not covered by your other zones.

Restricted gateways disappear for carts with several packages #

Cause: when packages in the cart use different shipping methods, the plugin cannot match one method, so restricted gateways are hidden. This happens with plugins that split the cart into packages by vendor or category.

  1. Leave the gateways that must always be available unrestricted.

The rule is ignored for virtual or downloadable orders #

Cause: this is by design. When the cart does not need shipping, no gateway is filtered by shipping method.

A gateway is hidden even though its shipping method is selected #

  1. Check the gateway’s own settings in WooCommerce > Settings > Payments. Cash on delivery, for example, has its own Enable for shipping methods field, and both rules apply.
  2. If you use shipping instances, confirm you picked the method in the right zone. A method in another zone is a different instance.
  3. If you use method types with a third-party shipping plugin, the rate ID must start with the method ID shown in the list. Try shipping instance mode instead.
  4. Disable other payment restriction plugins temporarily to rule out a conflict.

A rule applies in every zone when you wanted one zone #

Cause: in method type mode, a selection such as Flat rate matches every Flat rate method in every zone. Turn on Use shipping instances, save, and select the method of the right zone. See restricting payment methods by shipping zone.

My rules vanished after switching Use shipping instances #

Cause: the two modes store rules under different option names (alg_wc_pgbsm_enable_ and alg_wc_pgbsm_enable_instance_). Nothing is deleted: switch back to see the old rules, or rebuild them in the new mode.

A shipping method is missing from the list #

  1. In shipping instance mode, only methods added to shipping zones appear. Add the method to a zone or use method type mode.
  2. Click Save changes after switching modes; the list is built when the page loads.
  3. The plugin code lists a check of the newer WooCommerce Local pickup (pickup locations) as pending. If you use pickup locations and they do not match as expected, test in method type mode and contact support.

A COD fee or gateway fee stays in the totals #

Cause: the customer’s previously chosen payment method is still stored in the session after the gateway is hidden, so fee plugins keep adding its fee.

  1. Go to WPFactory > Payment Gateways by Shipping (also reachable at WooCommerce > Settings > Payment Gateways by Shipping).
  2. In Advanced Options, check Reset chosen payment method.
  3. Click Save changes and test checkout again.

Payment methods do not update in the Checkout block #

Cause: the plugin filters gateways with WooCommerce’s classic available gateways filter, and its code lists block-based checkout compatibility as a to-do. If the payment options in the Checkout block do not change when the shipping method changes, switch your checkout page to the classic checkout (the [woocommerce_checkout] shortcode) and test again.

Need a hand? Our team answers every ticket on the Payment Gateways by Shipping support forum.