Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/designcart/design-cart-ship2pay/archive/refs/heads/main.zipDesign Cart Ship2pay
Map WooCommerce payment methods to shipping methods. Pick a delivery on the left, switch payments on the right — checkout follows that map.
GitHub About / short description
Paste into the repository About description field:
WooCommerce plugin that maps payment methods to each shipping method. Toggle payments per delivery; checkout shows only what you allowed. By Paweł Nosko / Design Cart.
Links
- Download (Design Cart): https://www.designcart.pl/laboratorium/362-jak-w-woocommerce-uzaleznic-metody-platnosci-od-wybranej-metody-wysylki.html
- Documentation / article: https://www.designcart.pl/laboratorium/362-jak-w-woocommerce-uzaleznic-metody-platnosci-od-wybranej-metody-wysylki.html
- Author — Paweł Nosko: https://www.designcart.pl/pawel-nosko.html
- Studio — Design Cart: https://www.designcart.pl/
What it is
WooCommerce keeps shipping and payments as two separate lists. A customer can pick locker delivery and still see cash on delivery, or pick store pickup and still see a courier COD method the shop cannot fulfil.
Design Cart Ship2pay is a small plugin for that one job. In admin you see shipping methods on the left and, for each of them, a list of payment methods on the right. You turn payments on or off. On checkout (classic and Blocks) the payment list is filtered from the chosen shipping method.
It does not add a gateway. It does not change shipping rates. It only decides which already-enabled WooCommerce payments may appear next to a given delivery.
Full documentation (Polish): Jak w WooCommerce uzależnić metody płatności od wybranej metody wysyłki?.
Author: Paweł Nosko · Company: Design Cart · License: GPL-2.0-or-later · Version: 1.0.0
The problem it solves
Shops usually know the rules by heart: no COD in a locker, cash only on store pickup, card and bank transfer for export. Those rules live in someone’s head until an order arrives that nobody can fulfil.
Ship2pay puts the same rules on one screen. Staff do not have to remember exceptions. Customers do not see a payment the shop cannot take with that delivery.
Typical use
- Store pickup — keep bank transfer, BLIK, or pay-in-store; hide courier COD.
- Parcel locker / pickup point — hide cash on delivery if the carrier does not collect it there.
- Two rates from one carrier — prepaid vs COD each get their own payment list.
- International zones — leave card or PayPal; hide Polish-only methods.
- Bulky goods — keep prepaid methods only on the oversized shipping rate.
Features
- One settings screen under WooCommerce → Design Cart Ship2pay
- Shipping methods grouped by WooCommerce zones (including Rest of the world)
- On/off toggle for every enabled payment gateway, per shipping method
- Enable all / disable all for the shipping method you are editing
- Counter on each shipping row (e.g.
3/5payments allowed) - Master switch to turn checkout filtering off without deleting the map
- Works on classic checkout and WooCommerce Checkout Blocks
- HPOS compatibility declared
- Admin UI uses the Design Cart DC Interface (hero + form card)
Honest limits
- Only gateways enabled in WooCommerce appear in the map.
- A shipping method with no saved map still shows every payment — the shop does not go blank after activation.
- A newly added gateway stays available until you save the map again.
- Virtual carts that do not need shipping are not filtered.
Requirements
- WordPress 6.2+
- PHP 7.4+
- WooCommerce 8.0+ (must be active)
- Tested up to WordPress 7.1
Installation
- Download the ZIP from the Design Cart site or from this GitHub repository.
- WordPress → Plugins → Add Plugin → Upload Plugin.
- Upload the ZIP. The root folder must be
design-cart-ship2paywithdesign-cart-ship2pay.phpinside. - Activate Design Cart Ship2pay. WooCommerce must already be active.
- Open WooCommerce → Design Cart Ship2pay, set the map, click Save.
Manual / FTP: copy design-cart-ship2pay/ into /wp-content/plugins/, then activate. A Settings link also appears on the Plugins list.
Admin screen
There is a single page. No extra tabs.
Hero
Title, breadcrumbs, and a Save button that submits the same form as the button at the bottom. Use it when the map is long.
Enable payment filtering at checkout
Master switch. On — checkout uses the saved map. Off — WooCommerce shows every enabled payment again, but the map stays in the database. Remember to click Save.
Empty states
- No shipping methods — add them under WooCommerce → Settings → Shipping.
- No enabled payment methods — enable them under WooCommerce → Settings → Payments.
Left column — Shipping
- Methods grouped by zone name.
- Click a method to load its payment list on the right. Clicking does not save.
- Disabled badge — the method is off in WooCommerce; you can still prepare its map.
- Counter
on/total— how many payments are allowed for that method. Updates as you toggle.
Right column — Payments
- Lead text repeats the shipping title and zone so you know what you are editing.
- Enable all / Disable all — only for the method currently selected.
- Each row: checkout title, gateway title, gateway id (e.g.
bacs,cod). - On = this payment may appear with that shipping method. Off = hidden on checkout for that delivery.
Save
Writes the master switch and the full map. A notice confirms the save. Place a test order and change shipping — the payment list should match the map.
How checkout filtering works
The plugin reads the chosen shipping rate from the WooCommerce session (and, on the pay-for-order page, from the order). It then removes payment gateways that are switched off for that rate.
Classic checkout refreshes payments with WooCommerce update_checkout. Checkout Blocks use the official payment-method extension callbacks, so the list updates when the customer changes delivery — including two rates with the same price.
If several packages are in the cart, a payment must be allowed for every chosen rate.
License
GPL-2.0-or-later. See the plugin header in design-cart-ship2pay.php.