WooCommerce inbuilt shipping settings are quite simple – too simple, sometimes.
WooCommerce merchant often require a complex shipping setup, depending on the industry or the (very expensive) courier fees.
But shipping is much more: conditional logic, marketing, user experience.
Setting shipping costs with a handy “table rate” plugin, combining them with cart-based marketing actions and guiding your customers through the buying process can help you sell more and reduce your return rate.
Explaining to your customers why they can’t buy a certain product, or encouraging them to add another one to the cart to get a discount, or blocking certain shipping rates so that your courier doesn’t overcharge you… there are so many needs for a more advanced shipping setup.
In this article, we’ll tale a look at the importance of shipping costs, why conditional logic is a game changer and why customers love to get free shipping. Enjoy!
Continue reading WooCommerce: How To Set Up Complex Shipping Rules
If you run an eCommerce store, one of the most crucial factors to provide a great customer experience and minimum cart abandonment is adding delivery order date and time slot options for your customers.
According to a UPS Survey, 12-28% of customers abandon their shopping carts because of the absence of estimated delivery dates before checking out. Your customers want to know when they can expect their orders or select a suitable date and time of order delivery per their convenience.
In fact, even eCommerce marketplaces like Walmart and Amazon display anticipated delivery dates and the calendar slots on checkout and product pages based on the customer’s location.
Hence, displaying delivery days and slots are essential features to ensure customer retention and sales – as they’re determining factors in customers’ purchasing decisions.
One of the most seamless ways to add the date and time slots before the checkout is through WooCommerce order delivery date plugins. But first, let’s see the different ways these plugins can benefit your online store, and your customers’ shopping experience
Continue reading WooCommerce: How to Set Up Order Delivery Slots
As an advanced WooCommerce developer, at some stage you’re really going to need this PHP function, the same way you often browse through Business Bloomer’s WooCommerce visual hook guides or the product / order / cart getters.
This time we go study how to “get” the shipping zones and rates, because it’s likely that you will need to loop through them when you need to display shipping rates somewhere, or for other custom functionalities. Enjoy!
Continue reading WooCommerce: Get All Shipping Zones & Rates
In today’s “Watch me customize my WooCommerce marketplace website” episode (see previous customization re: external products) we’ll go printing shipping zones and rates on the single product page, so that users know how much they’ll end up spending once they reach the Cart/Checkout and there are no “hidden” fees. Not bad for some transparency = better sales conversion rate!
You can see the result on my own website, at this link for example: https://www.apieceofsicily.com/en/shop/sicilian-crafts/ciabattino/ – as you can see right below the “Add to Cart” button there is a shipping table with the data taken from the shipping zones.
I must say I use YITH WooCommerce Multi Vendor / Marketplace so that data is actually taken from each vendor’s shipping setup – so in this tutorial we will first see how to get the default “WooCommerce Shipping Zones Data” and in a second snippet we will instead see how to get the info for each vendor instead.
Either way, enjoy!
Continue reading WooCommerce: Show Shipping Rates @ Single Product Page
A good way to inform online customers and avoid issues is showing the estimated delivery / dispatch time on the single product page, just below the “Add to Cart” button. Yes, you could do that manually by adding shipping info to each product short description, but the goal of Business Bloomer is to learn how to code that instead, so you won’t need to write things manually.
Also, this is great because if you change something in your dispatch rules, you just need to change the short PHP snippet and not all your product descriptions. It’s much more flexible this way.
Finally, in this post we’ll learn how to work with cut-off times (hour of the day) and current day of the week (pure PHP), so that we can show a “dynamic” notice based on current date. So, let’s see how it’s done!
Continue reading WooCommerce: Show Dispatch / Est. Shipping Date @ Single Product
I’m surprised WooCommerce doesn’t offer this field out of the box. Most ecommerce websites actually require a shipping phone to organize delivery and communicate with the end customer in case there are problems.
Thankfully, there is a hook (filter) for that. It’s called “woocommerce_checkout_fields” and can be used to remove, move or add checkout fields quickly. And here’s how to add, for example, a new shipping field called “shipping_phone”. Enjoy!
Continue reading WooCommerce: Add Shipping Phone @ Checkout
We already talked about weight based shipping and in this post we found out how to charge different flat rates based on shipping weight thresholds.
But now I want to show you how you can use the default “Flat Rate” to calculate shipping costs based on cart weight, thanks to a multiplier. For example, your shipping rate might be “$5 for each Kg” – as you know the default “Flat Rate” only allows you to define one rate e.g. $10.
So, what if you want to calculate shipping charges by weight? Well, here’s a simple workaround for you. Continue reading WooCommerce: Flat Rate Calculation Based on Weight (Without a Plugin!)
Believe it or not, the answer to this very frequent question is inside the WooCommerce settings… so don’t worry too much about coding if you’re not a developer!
From the WooCommerce shipping rates, you can select “Free Shipping” as a method but that would apply to ALL products – so how do you override the shipping settings and allow a single product to have free shipping? Continue reading WooCommerce: How to Assign Free Shipping to a Single Product?
Woo 2.6 introduced Shipping Zones – and with that we can play with simple PHP (and JQuery) to accomplish lots of “advanced” shipping rules, such as local pickup.
This time, I’ve tested a snippet to add a dropdown to the billing section where users go choose the pickup destination. As a result, the shipping address is automatically populated, and so is the shipping method. What do you think? Continue reading WooCommerce: Only Ship to Predefined “Local Pickup” Addresses
With WooCommerce Shipping Zones you can use simple PHP to accomplish lots of “advanced” shipping rules, such as shipping by weight.
With many of Business Bloomer fans always asking for this sort of customization, today we’ll see how to do just that. Without the need of just another plugin 🙂
Continue reading WooCommerce: Shipping by Weight (Without a Plugin!)
The new shipping zone management that was introduced with Woo 2.6 gives us the chance to add flat rate, free shipping and local pick-up methods by default.
But what if a client requires 3 different rates depending on the order amount (tiered shipping)? For example: “For orders up to $100, shipping = $5; for orders up to $250, shipping = $2; for orders above $500, shipping = free”.
Is this possible without using a plugin? Well, the answer, as usual, is absolutely yes! Enjoy!
Continue reading WooCommerce: Shipping Rates by Order Amount
A North European client told me they’re really strict about billing and shipping addresses over there. Couriers usually require a separate “House Number” in order to dispatch packages within those countries.
This must be therefore placed on the checkout, BESIDE the “Address_1” field and made required. Also, it’s a good idea to make this show in the Admin Order, thank you page and notification Emails.
Continue reading WooCommerce: Add House Number Field @ Checkout
Today’s snippet has been widely requested by many readers, clients and WooCommerce fans. We already saw in the past how to Limit State Dropdowns to One State Only (for both Shipping & Billing) and How to Sell to one State only (Billing).
However, we never covered a much more common setting: what happens when Billing is allowed to every state but Shipping is limited?
In order to get a little help, I’ve reached out to Diego Zanella, a WooCommerce genius who is also the author of the Aelia Currency Switcher plugin for WooCommerce.
Continue reading WooCommerce: Limit Shipping to Only One State
Our goal is to check if a Product with a specific Shipping Class is in the Cart, and consequently disabling a shipping rate such as Free Shipping if this is true.
This is super useful when there are multiple items in the cart and you don’t want to give free shipping for certain orders for example.
Continue reading WooCommerce: Hide Shipping By Shipping Class
Today we take a look at the WooCommerce Checkout page and specifically at how to add a Custom Extra Fee for Non-Continental US States. You can do the exact same thing for a non-US State, as long as customers will feel comfortable in paying extra! Continue reading WooCommerce: Add Shipping Fee for Non-Continental States
Today we take a look at the WooCommerce Checkout page and our goal is to disallow placing an order to customers that enter a PO BOX address. I don’t remember where I got this snippet from, but either way I’m glad to share it again!
Continue reading WooCommerce: Disallow Shipping to PO BOX Address
Today we take a look at the WooCommerce Checkout Page and specifically at how to disable a payment gateway (for example PayPal) when a specific shipping method is selected (e.g. “local_pickup”).
Specifically, you will learn how to “get” the selected shipping method on the go (thanks to “sessions”), and also how to “unset” a payment gateway. Enjoy!
Continue reading WooCommerce: Disable Payment Gateway For Specific Shipping Method
A client needed to disable all shipping methods but Local Pickup for a certain variation ID. This may come useful if you’re looping through the variations on the cart/checkout page (check if variation ID is in the cart for example), so here you go! Continue reading WooCommerce: Disable Shipping Rate if Variation ID @ Cart
A client had several shipping rates on the cart page automatically generated by FedEx, USPS, UPS and similar plugins via their API. Problem was, they wanted to sort them by price as opposed to grouping them by provider.
Thankfully, with a simple “uasort” PHP function, it’s possible to take the shipping rates array and sort it by amount before returning it back to the screen. If you don’t know PHP, simply copy/paste!
Continue reading WooCommerce: Sort Shipping Costs from Low to High
When you have special shipping requirements, maybe you want checkout users to see the shipping form section visible on load.
Here’s how you do it. You’ll also find the opposite task in case you happen to have the shipping form opened by default and you want to hide it. Enjoy!
Continue reading WooCommerce: “Ship to a Different Address” Opened by Default