WooCommerce: Assigning Truck Routes to Customer Orders

In a Business Bloomer Club Slack thread, a member recently sought advice on a unique WooCommerce shipping scenario: they support a small wholesale business with dedicated delivery trucks for specific areas and wanted to add a custom field for each customer identifying the truck route associated with their delivery location.

The goal was to include this truck route metadata in every order, which would then be uploaded to the warehouse system. This setup presents a few challenges, particularly when it comes to associating specific trucks with customers and orders automatically.

Here’s an overview of our discussion, including plugin options and code snippet solutions to accomplish this.

Continue reading WooCommerce: Assigning Truck Routes to Customer Orders

WooCommerce: Exclude Shipping Method From Specific User Role

WooCommerce offers a robust shipping system, but what if you want to tailor it based on the logged in user role?

In this blog post, we’ll show you how to exclude specific shipping methods from users with a particular role. This allows you to, for example, offer free shipping only to VIP members or restrict express delivery options to regular customers.

All you need is the user role slug (WordPress Dashboard > Users -> All Users > above the user list table you’ll see a horizontal list displaying the current user roles available on your site (e.g., Administrator, Editor, Author). Hover on one of them and see the URL, which will contain the exact slug e.g. “customer”) and the shipping rate ID you wish to disable (e.g. “flat_rate:9”. For more info you can find out how to find IDs here: https://businessbloomer.com/woocommerce-disable-free-shipping-if-cart-has-shipping-class).

Enjoy!

Continue reading WooCommerce: Exclude Shipping Method From Specific User Role

WooCommerce: Populate Billing & Shipping When Adding A New User @ WP Dashboard

If you do a lot of manual work such as creating WordPress users for a B2B WooCommerce site (because they can only shop if they have an account, and you’ve disabled registration on the frontend), you may want to populate some Billing and Shipping fields so that you can save some time.

For example, imagine if all customers are based in Florida, USA; you could automatically populate their billing country, billing state, shipping country and shipping state!

So, let’s see how to approach this. Enjoy!

Continue reading WooCommerce: Populate Billing & Shipping When Adding A New User @ WP Dashboard

WooCommerce: Add Shipping Rate Description @ Cart & Checkout Page

Each payment method on the WooCommerce Checkout page comes with a description right below the label. What if we could achieve something similar for the shipping rates, so that we can explain to the customer the difference between each method?

This question came up today in our private Slack channel for Woo developers, and we were able to write a quick snippet that does the trick. Here’s the complete code – enjoy!

Continue reading WooCommerce: Add Shipping Rate Description @ Cart & Checkout Page

WooCommerce: No Default Shipping @ Checkout Page

We already saw how to disable the default payment gateway in the WooCommerce Checkout page, so that users are forced to click on one of the options.

Well, we can do the exact same with the shipping methods!

In this way, customers will be forced to actually click on one of the shipping options. This is helpful when you don’t want to have a default shipping, and when your customers often “forget” to pick the correct one and ask to change it once the order has been placed.

Enjoy!

Continue reading WooCommerce: No Default Shipping @ Checkout Page

WooCommerce: Read-only Checkout Fields

Especially for B2B sites, it’s likely that customers are managed by the store admin and are not allowed to change their billing/shipping address unless they request to update it.

But even if you’re simply curious, there is a way to turn each checkout field into read-only inputs. In this way, the saved billing and shipping address will load, and the logged in customer won’t be able to change any data before checkout.

A little note: country and state are dropdowns, and this means adding the “readonly” attribute won’t stop you from changing the selected value. However, if we turn all fields to input type “text”, this problem will go away. And this is why you find two statements in the snippet below; first we turn the field into a text input, and then we make it read-only.

Enjoy!

Continue reading WooCommerce: Read-only Checkout Fields

WooCommerce: Split Cart Into Packages

There are a million plugins out there that allow you to make the most of WooCommerce “cart packages” – this is a short way to say that you have the chance to assign cart items to multiple “packages“, so that the customer can pick different shipping methods for each package.

For example, imagine you sell products that are only available for “pick up in store“, and others that are shippable. By splitting the cart into 2 packages, the customer can place both product types in the same cart, but will be able to choose “Local pickup” for package 1 only, while for package 2 they’ll select one of the available delivery rates.

Splitting the cart into multiple packages is as easy as looping through the cart items, and assigning them to its own package array based on shipping class. Enjoy!

Continue reading WooCommerce: Split Cart Into Packages

How to re-order shipping options on the WooCommerce checkout?

I’m using the funnel kits plugin for the checkout page. I have tried different logics but none of them seem to work. We have 4 different shipping options.

  1. Free shipping
  2. Local Pickup
  3. Standard Shipping
  4. Express Shipping

The local pickup option is the first one that’s showing on the shipping options on checkout. I would like to make it the last option. People get confused thinking it’s a free option. So I would like to have it in the following order.

  1. Free Shipping
  2. Standard Shipping
  3. Express Shipping
  4. Local Pickup

All I would like to do is move the local pickup option to the last. Please help.

WooCommerce: Add Hyperlink to Shipping Method Label @ Cart & Checkout

Let’s say you want to help customers understand your shipping rates and benefits right on the WooCommerce Cart and Checkout pages, by adding a link to each shipping option (e.g. “View shipping FAQ“).

As you can see from the first and second screenshot below, if you enter any HTML within the WooCommerce shipping zone -> shipping method settings, this will be stripped out, and HTML tags such as hyperlinks won’t work.

So, how can we add a clickable text link to each shipping method, given that we can’t use the WooCommerce settings? Well, as usual, a quick PHP snippet can help us with that. Enjoy!

Continue reading WooCommerce: Add Hyperlink to Shipping Method Label @ Cart & Checkout

WooCommerce: Edit “Ship to a Different Address?” @ Checkout

The “Ship to a Different Address?” checkbox displays on the WooCommerce Checkout page and toggles the shipping form. That’s useful when Billing and Shipping addresses are different, so let’s say every B2C requires the double form.

However, the “Ship to a Different Address?” string may be confusing or may need further clarification, as not all customers are created equal. What about “I’d like to define a different shipping address” or “Ship to a different address than the Billing one“?

Either way, editing the string is super easy, so you can change it to whatever you like. Enjoy!

Continue reading WooCommerce: Edit “Ship to a Different Address?” @ Checkout

WooCommerce: Hide “Shipping to…” Address @ Cart

Even when the “shipping calculator” is disabled on the WooCommerce Cart page, a “Shipping to…” string will appear in the cart totals if an address has been previously entered or if geolocation is enabled.

Most WooCommerce store owners, however, wish to remove / hide this text, as it can be confusing for the customer. In this quick tutorial, we’ll study two different workarounds to achieve the same result. Enjoy!

Continue reading WooCommerce: Hide “Shipping to…” Address @ Cart

WooCommerce: Add a New Country For Billing/Shipping

There are times when the WooCommerce countries database is simply not enough. While the WooCommerce team is usually very fast at updating its code (though, the newest country is apparently South Sudan, which became independent in 2011, the year WooCommerce launched!), you may need to DIY in certain cases.

Think of Northern Ireland for example. It’s not a “country”, however most Irish businesses would ship to Northern Ireland and not to “UK”, so having “Northern Ireland” in the Checkout page country dropdowns may help.

In this edge case study, we’ll basically take a look at how to add a custom country, how to make sure this custom country shows at checkout as a possible option (and in the shipping zones admin section), and also how to assign to it a custom list of states. You never know!

Continue reading WooCommerce: Add a New Country For Billing/Shipping

WooCommerce: How To Set Up Complex Shipping Rules

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

WooCommerce: How to Set Up Order Delivery Slots

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