WooCommerce extensions trusted across 25,000+ websites.
With Custom Shipping Methods for WooCommerce Pro plugin you can add custom shipping methods to WooCommerce.

In addition to standard WooCommerce cost calculation shortcodes ([qty], [cost], [fee]) you can also use [weight] and [volume] shortcodes.
The plugin also includes:
[costs_table] shortcode has two attributes: prop and table.
prop attribute can be: volume, weight, qty, cost or distance.
table attribute sets costs based on prop attribute’s value, in min_prop-cost format.
Items volume is calculated by multiplying each item’s width, height and length.
[costs_table prop="volume" table="0-10|50-50|100-125.5"]
This example will set costs according to this table:
| Volume | Shipping Cost |
|---|---|
| from 0 and below 50 | 10 |
| from 50 and below 100 | 50 |
| from 100 | 125.5 |
[costs_table prop="weight" table="0-10|50-50|100-125.5"]
This example will set costs according to this table:
| Weight | Shipping Cost |
|---|---|
| from 0 and below 50 | 10 |
| from 50 and below 100 | 50 |
| from 100 | 125.5 |
[costs_table prop="qty" table="0-20|10-10|20-0"]
This example will set costs according to this table:
| Quantity | Shipping Cost |
|---|---|
| from 0 and below 10 | 20 |
| from 10 and below 20 | 10 |
| from 20 | free |
[costs_table prop="cost" table="0-20|10-10|20-0"]
This example will set costs according to this table:
| Order Amount (i.e. Order Cost) | Shipping Cost |
|---|---|
| from 0 and below 10 | 20 |
| from 10 and below 20 | 10 |
| from 20 | free |
Distance is calculated same as in [distance] shortcode. Also same attributes (key, default_distance, units, src, debug) are applied.
[costs_table prop="distance" table="0-10|50-50|100-125.5" key="BIzbSyBNBNR9yi3vTgC33oXSpwQftScNSmO-fjc" default_distance="100" units="km"]
* Please note that key from example is not a valid key – you need to get your own key here.
This example will set costs according to this table:
| Distance | Shipping Cost |
|---|---|
| from 0 and below 50 km | 10 |
| from 50 and below 100 km | 50 |
| from 100 km | 125.5 |
[distance] shortcode has five possible attributes:
0.m for meters (default), km for kilometers and mi for miles.address, city postcode, country.yes, will output debug information in “WooCommerce > Status > Logs”. Default: no.1.5*[distance key="BIzbSyBNBNR9yi3vTgC33oXSpwQftScNSmO-fjc" default_distance="15" debug="yes" units="km"]
* Please note that key from example is not a valid key – you need to get your own key here.
If you need to round some values, you can use
[round][weight]/100[/round]
[round] shortcode attributes:
up, down and normal. Default is normal.normal rounding type only. Sets the number of decimal digits to round to. Default is 2. This is the same parameter as in PHP round() function:For each custom shipping method you can optionally set min/max cost/weight/volume/quantity method availability options.

As in standard WooCommerce shipping methods, you can optionally set shipping class costs, i.e. costs that are based on the product shipping class.

General plugin options are located in “WooCommerce > Settings > Custom Shipping Methods”.

Admin Settings: Admin title
Sets custom shipping’s admin title. Visit “WooCommerce > Settings > Shipping” to set each method’s options.Default: Custom shippingFrontend Settings: Trigger checkout update
Will trigger the checkout update on any input change. This is useful if you are using cost calculation by distance to the customer.Default: noFrontend Settings: Add to zero cost
Will add text to custom shipping cost on frontend in case if it’s zero (i.e. free).Default: noFrontend Settings: Add to zero cost: Text
Text to add to zero cost. Ignored if “Add to zero cost” option above is disabled.Default: None
For example:
<span style="color:green;font-weight:bold;">Free!</span>
Icons & Descriptions: Enable section
Enables icons and descriptions options for custom shipping methods. Visit “WooCommerce > Settings > Shipping” to set each method’s icon and description.Default: noIcons & Descriptions: Icon templateSets template for the icons. Replaced value: %icon_url%.
Default:
<img style="display:inline;" src="%icon_url%">
Icons & Descriptions: Description templateSets template for the descriptions. Replaced value: %desc_text%.
Default:
<p style="font-size:small;font-style:italic;">%desc_text%</p>
Icons & Descriptions: Final template
Sets final template. Replaced values: %icon%, %label%, %desc%.
Default:
%icon%%label%%desc%