Setup
Do I need to add the plugin to my shipping zones?
No. It runs on every shipping calculation and works out the zone itself, so a rule is live as soon as you save it. It deliberately does not appear in a zone’s Add shipping method dialog — here is what runs instead.
Does this replace WooCommerce’s flat rate shipping?
It can, but it does not have to — both can coexist in a zone. To suppress the built-in methods when your rule applies, tick hide other shipping methods on that rule.
Do I have to re-enter my countries and regions?
No. Targeting uses your existing WooCommerce shipping zones. Geography stays in WooCommerce.
Does it work with the Cart and Checkout Blocks?
Yes, and with the classic templates. HPOS (High-Performance Order Storage) is supported too.
Building rules
How do I offer free shipping over an amount?
Either tick Free when cart total ≥ on a rule, or build two rules so the free rate can carry its own label. Both are covered in the recipes.
Can I charge different rates per product or category?
Yes — use Cart contains product, Cart contains category or Cart contains shipping class.
Can I offer several shipping options for one order?
Yes. Build a rule per option and set Rule evaluation to Show all matching rates.
Can I set a maximum or minimum order weight?
Use Cart weight with is at most or is at least to control when a rate is offered.
It cannot make shipping unavailable above a weight, and the reason is worth knowing before you try: Can I set a maximum or minimum order weight?
How many rules can I have?
No limit. They live in one indexed table and a checkout calculation is a single query.
Troubleshooting
A rule matched but the customer saw a different rate.
That is resolution, not matching — under Only the highest rule applies, the first matching rule from the top wins and the rest are discarded.
My dimensional rule never matches.
Every product needs length, width and height, and Dimensional weight also needs the divisor set under Settings → Units.
My postcode rule does nothing.
Destination rules match nothing until the shopper has entered an address. If you are testing in the Simulator, set the destination country as well — postcode formats are country-specific.
Will it slow my store down?
No. One indexed table rather than post meta, and one query per calculation. On the cart and checkout no frontend assets load unless the progress bar is being shown.
What happens if a rule is misconfigured?
It is skipped and flagged on the dashboard. A bad rule never causes a fatal error at checkout.
Developers
There is both a REST API and a WP-CLI command, each restricted to users who can manage WooCommerce:
wp wpactpro-sr rules --help
REST lives under /wp-json/wpactpro-shipping-rate-builder/v1/.
Translating
The plugin ships translations for German, Spanish, French, Italian and Brazilian Portuguese. WordPress loads the right one automatically from your site language.
To translate into another language, open wpactpro-shipping-rate-builder.pot in the plugin’s languages/ folder with Poedit or Loco Translate, and save your files as:
wpactpro-shipping-rate-builder-{locale}.po
wpactpro-shipping-rate-builder-{locale}.mo
So a Dutch translation is wpactpro-shipping-rate-builder-nl_NL.po and .mo.
⚠ Warning
Match that prefix exactly. WordPress finds translations by filename, so a file named anything else is silently ignored — there is no error to diagnose it by.
Tip
Keep custom translations inwp-content/languages/plugins/rather than inside the plugin folder. WordPress checks there first, so your work survives plugin updates instead of being overwritten by them.