Adding a Description Under WooCommerce Shipping Method Title on Checkout Page

In a recent Business Bloomer Club Slack thread, a WooCommerce user sought advice on adding a description text below the “Free Shipping” title on the checkout page.

This customization aims to provide customers with additional details about the shipping method, like delivery time, in a non-bolded, regular text format beneath the bolded title.

Here’s a guide on implementing this feature, including sample code to get you started.

Continue reading Adding a Description Under WooCommerce Shipping Method Title on Checkout Page

Troubleshooting Customers Seeing Someone Else’s Address @ WooCommerce Checkout

In a recent Business Bloomer Club Slack thread, a developer encountered a complex issue with a WooCommerce site where user address details at checkout were occasionally displaying previous customers’ data.

The issue seemed specific to the default language, Dutch, raising concerns about cache-related problems and potential conflicts with WPML.

Here’s an overview of possible causes, steps to troubleshoot, and a provisional solution that might help if you’re experiencing a similar situation.

Continue reading Troubleshooting Customers Seeing Someone Else’s Address @ WooCommerce Checkout

How to Avoid Defaulting to Local Pickup in WooCommerce Checkout

In a recent Business Bloomer Club Slack thread, a WooCommerce user needed help with shipping zones and methods for a store offering UPS shipping across the U.S. and Local Pickup in California.

The issue was that “Local Pickup” automatically appeared as the default option in the checkout for California customers, often causing them to miss it and requiring refunds.

Here’s a solution to avoid defaulting to any shipping method, prompting customers to actively choose a preferred option.

Continue reading How to Avoid Defaulting to Local Pickup in WooCommerce Checkout

Switching Billing and Shipping Address Sections on WooCommerce Checkout with Blocks

In a recent Business Bloomer Club Slack thread, a WooCommerce user wanted to reorder the checkout page so that the Billing Address section appears first, with a checkbox option to use the same address for Shipping.

Currently, this customization is challenging if you’re using WooCommerce’s new Checkout Block, as it doesn’t yet support the reordering of sections or fields.

Continue reading Switching Billing and Shipping Address Sections on WooCommerce Checkout with Blocks

How to Set the Default Country to USA in WooCommerce Checkout

In a recent Business Bloomer Club Slack thread, a member asked how to set the default country to the United States on the WooCommerce checkout page.

By default, WooCommerce may set the country field to a different option, depending on settings or user location, but it’s possible to customize this to ensure the United States (or any other country) appears as the default in both the billing and shipping fields.

Here’s a quick guide on how to adjust the default billing and shipping country fields to streamline the checkout experience for US-based customers.

Continue reading How to Set the Default Country to USA in WooCommerce Checkout

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

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: Prevent Orders From Blacklisted Email Addresses

In some cases, you may need to block certain customers from completing orders on your WooCommerce store.

This could be due to fraud prevention, policy violations, or simply wanting to prevent repeat offenders from making purchases. Thankfully, WooCommerce provides the flexibility to implement an email blacklist with just a few lines of code.

In this tutorial, I’ll show you how to add a simple email blacklist using a custom function that checks the customer’s email at checkout. By adding these 8 lines of PHP to your theme’s functions.php file, you’ll be able to prevent orders from specific email addresses efficiently. Enjoy!

Continue reading WooCommerce: Prevent Orders From Blacklisted Email Addresses

WooCommerce: Add Checkout Fee Based On Shipping Class

Whether you’re dealing with bulky items, fragile goods, or specific shipping items, you can leverage WooCommerce’s flexibility and implement a fee structure that accurately reflects shipping complexities, improves profit margins, and enhances overall order management.

This tutorial gives you a practical solution – dynamically adding checkout fees based on whether a given shipping class is in the cart.

Enjoy!

Continue reading WooCommerce: Add Checkout Fee Based On Shipping Class

WooCommerce: Add Checkout Payment Section Heading

There are a couple of reasons why the default WooCommerce checkout page doesn’t have a separate heading for the payment section.

One is about design; WooCommerce might be aiming for a clean and uncluttered checkout process. A dedicated heading might add visual weight to the page, potentially making it feel more complex. By omitting the heading, they keep the focus on the actual payment fields.

The other is about logic: the order of information on the checkout page is designed to be logical. Shipping information naturally follows the billing address section, and most users inherently understand this as the payment section.

However, the lack of a heading can be a point of contention. Some users might prefer a clearer distinction between sections. And a call to action above the payment options can maybe help you convert better.

Let’s do it.

Continue reading WooCommerce: Add Checkout Payment Section Heading

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: No Default Payment @ Checkout Page

When you land on the WooCommerce Checkout page, one payment option (radio button) will be selected by default. this is defined based on the last payment method (logged in customer), or the payment gateway sorting (logged out customer).

Often it happens, however, that customers forget to change their payment selection, and therefore end up checking out with the wrong payment option. Which means, more admin work.

With this simple snippet, we will inject some JS in the Woo Checkout page, so that on load, all payment method radio inputs will be unchecked. Super easy!

Continue reading WooCommerce: No Default Payment @ 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: Super Simple EU Vat Number Validation (VIES)

As an EU merchant dealing with VAT customers, I often find myself doing manual checks on the VIES VAT number validation website. Thankfully most of my customers are outside the EU so I don’t use the tool often, but still, for a developer this is just a waste of time!

By studying the available options on various online forums, I found a super simple workaround that doesn’t even require signing up for an API.

In fact, you can simply visit an URL and get the response straight away – which means we can access the same URL via PHP, get the response, and possibly return an error on the WooCommerce Checkout page in case the number is not valid.

Read on to find out how I use this validation on this same website.

Continue reading WooCommerce: Super Simple EU Vat Number Validation (VIES)