Basing your shipping on the order’s subtotal is perhaps the most common scenario admins use for calculating shipping costs. While this tutorial focuses on the subtotal, the same rows could be applied to a single item’s cost, or the cost of a group of items. Which one the plugin uses will depend on your Based Table Rates selection under the General Settings section.
Price Tiered Shipping
In this scenario, the seller wants to ship orders of any amount, but the cost changes based on the tier the subtotal qualifies for. There are three price brackets, and any order that exceeds that amount ships for free. As an added bonus, the seller has added short descriptions to let the customer know of their saving potential on shipping.
The above example will charge customers $7.95 for orders valued up through $49.99. Then it charges $9.95 for orders from $50 through 79.99. The next tier charges $12.95 for orders from $80 through $124.99, and then finally free shipping for orders equal to and above $125. The plugin begins at the top of the table and evaluates the conditions in each row in the order they appear. The last qualifying row will be the one it uses. This is why there are only ‘Greater than’ statements and no ‘Less than’. The seller is relying on the priority in which they are listed in order for it to choose the correct option.
Price Tiered Shipping with a Maximum
To further explain how the priority logic works, let’s explore the possibility of have a maximum limitation on the subtotal. In this example, the seller is offering Express Shipping as a second option. However, they are only willing to offer this to customers who purchase $300 worth of product or less. Similar to the first example, there will be only one condition per row, but because there is a maximum amount, the conditions will be listed as ‘less than’ and in reverse order.
With ‘less than’ conditions the order is reversed so that the plugin does not always choose the last row. An order of $125 may be less than $199.99, but it is also less than $299.99 so that condition must come first. With this logic, the plugin will first check if the order is less than $299.99, which it is. Then it asks if the subtotal is less than $199.99 and it is. Last it checks if the order is less than $79.99, which it is not. So the final cost would be $28.95 as it was the last qualifying row the plugin found.
[alert style=”info”]All prices are based on the selected currency in your WooCommerce settings. If you wish to have these rates based on other currencies, you will need to find a compatible currency converter plugin. Or you can use WordPress filters to add compatibility with another (unsupported) plugin.[/alert]