Setting Up Location-Based Delivery Dates in WooCommerce

In a recent Business Bloomer Club Slack thread, a WooCommerce user asked for advice on configuring location-based delivery options.

The goal was to allow customers to select a delivery location and see available delivery dates specific to that location. This setup can streamline the user experience for stores with location-specific delivery schedules.

Here’s a recommended approach and plugin options to handle this configuration in WooCommerce.

Continue reading Setting Up Location-Based Delivery Dates in WooCommerce

Unlocking WooCommerce’s Full Potential: Addressing Its Weaknesses

cockle, shell, beach

Greetings from a seasoned WooCommerce user, developer, and advocate with over 12 years of experience!

I “play” with WooCommerce daily and believe there’s room for improvement. Simply catching up with competitors isn’t the right goal—STANDING OUT (yes, in all caps) is what we should be aiming for.

When you’re focused solely on closing the gap, you risk being seen as “the alternative to” rather than a standout in your own right. WooCommerce, with its unique ecosystem and flexibility, has the potential to thrive by embracing its strengths instead of chasing a moving target. By stepping away from the “catching up” mindset, you can create a truly exceptional product—one that isn’t just comparable but incomparable, one that leads rather than follows.

So, let’s take a step back.

I believe ecommerce software should let you sell ANYTHING (products) to ANYONE (customers around the world), while getting PAID and being able to DELIVER the package asap.

If Woo can address all that, it can really become outstanding, a piece of software that is worth talking about, and that doesn’t need to be compared to others. Because it’s unique.

There’s a reason why you can’t compare pears to apples—yet you could argue that diamonds outshine gold.

So, here’s an overview of key areas where WooCommerce might have weaknesses compared to other ecommerce platforms, together with some context.

Continue reading Unlocking WooCommerce’s Full Potential: Addressing Its Weaknesses

Finding the Perfect WooCommerce Shipping Integration for In-Admin Fulfillment

In a recent Business Bloomer Club Slack thread, a member sought advice on a comprehensive WooCommerce shipping solution that integrates directly into the WP/WooCommerce admin.

Their ideal setup would eliminate the need for external tools, allow for seamless use of a shipping scale, integrate a label printer, and incorporate tracking into WooCommerce’s default email notifications—without sending additional branded messages.

While many shipping solutions cover some of these needs, finding one that checks all boxes proved challenging. Here’s a summary of the insights shared and the best options for WooCommerce shipping integrations.

Continue reading Finding the Perfect WooCommerce Shipping Integration for In-Admin Fulfillment

Restrict WooCommerce Checkout Based on Product and Shipping Country

In a recent Business Bloomer Club Slack thread, a member asked how to restrict a specific product in WooCommerce based on the customer’s selected shipping country. This type of restriction is essential when logistics or compliance prevents certain products from shipping to specific regions.

To achieve this, you can deny checkout if a restricted product is in the cart and the selected shipping country is not allowed. Below, we’ll go through the code and approach needed to implement this functionality in WooCommerce.

Continue reading Restrict WooCommerce Checkout Based on Product and Shipping Country

WooCommerce Free Shipping Threshold Not Working: Decimal Formatting Issue

In a recent Business Bloomer Club Slack thread, a user shared an unexpected issue with WooCommerce’s free shipping functionality.

They had configured a free shipping threshold of €200 in their webshop, yet encountered inconsistencies: free shipping applied correctly for some products but failed for others, even when these items exceeded the set amount.

Continue reading WooCommerce Free Shipping Threshold Not Working: Decimal Formatting Issue

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